app.cmake: Replace tabs with spaces

app.cmake: Replace tabs with spaces

The coding standards of Mbed OS require indentation of four spaces.

--- tools/cmake/app.cmake
+++ tools/cmake/app.cmake
@@ -34,27 +34,27 @@
 # Check python packages from requirements.txt
 file(STRINGS ${CMAKE_CURRENT_LIST_DIR}/requirements.txt PYTHON_REQUIREMENTS)
 foreach(REQUIREMENT ${PYTHON_REQUIREMENTS})
-	# Look for a string from the start of each line that does not contain "<", ">", "=", or " ".
-	if(REQUIREMENT MATCHES "^([^<>= ]+)")
-		set(PACKAGE_NAME ${CMAKE_MATCH_1})
-		string(TOUPPER ${PACKAGE_NAME} PACKAGE_NAME_UCASE) # Ucase name needed for CMake variable
-		string(TOLOWER ${PACKAGE_NAME} PACKAGE_NAME_LCASE) # Lcase name needed for import statement
+    # Look for a string from the start of each line that does not contain "<", ">", "=", or " ".
+    if(REQUIREMENT MATCHES "^([^<>= ]+)")
+        set(PACKAGE_NAME ${CMAKE_MATCH_1})
+        string(TOUPPER ${PACKAGE_NAME} PACKAGE_NAME_UCASE) # Ucase name needed for CMake variable
+        string(TOLOWER ${PACKAGE_NAME} PACKAGE_NAME_LCASE) # Lcase name needed for import statement

-		check_python_package(${PACKAGE_NAME_LCASE} HAVE_PYTHON_${PACKAGE_NAME_UCASE})
-		if(NOT HAVE_PYTHON_${PACKAGE_NAME_UCASE})
-			message(WARNING "Missing Python dependency ${PACKAGE_NAME}")
-		endif()
-	else()
-		message(FATAL_ERROR "Cannot parse line \"${REQUIREMENT}\" in requirements.txt")
-	endif()
+        check_python_package(${PACKAGE_NAME_LCASE} HAVE_PYTHON_${PACKAGE_NAME_UCASE})
+        if(NOT HAVE_PYTHON_${PACKAGE_NAME_UCASE})
+            message(WARNING "Missing Python dependency ${PACKAGE_NAME}")
+        endif()
+    else()
+        message(FATAL_ERROR "Cannot parse line \"${REQUIREMENT}\" in requirements.txt")
+    endif()

 endforeach()

 # Check deps for memap
 if(Python3_FOUND AND HAVE_PYTHON_INTELHEX AND HAVE_PYTHON_PRETTYTABLE)
-	set(HAVE_MEMAP_DEPS TRUE)
+    set(HAVE_MEMAP_DEPS TRUE)
 else()
-	set(HAVE_MEMAP_DEPS FALSE)
-	message(STATUS "Missing Python dependencies (python3, intelhex, prettytable) so the memory map cannot be printed")
+    set(HAVE_MEMAP_DEPS FALSE)
+    message(STATUS "Missing Python dependencies (python3, intelhex, prettytable) so the memory map cannot be printed")
 endif()


fix function docblock, check for unparsed arguments (#945)

Signed-off-by: Dirk Thomas <19795c8185177e940eedd30ceb2b716a54a3d5dc@users.noreply.github.com>

--- rclcpp_components/cmake/rclcpp_components_register_node.cmake
+++ rclcpp_components/cmake/rclcpp_components_register_node.cmake
@@ -11,12 +11,12 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+# Register an rclcpp component with the ament
+# resource index and create an executable.
 #
 # usage: rclcpp_components_register_node(
 #        <target> PLUGIN <component> EXECUTABLE <node>)
-#
-# Register an rclcpp component with the ament
-# resource index and create an executable.
 #
 # :param target: the shared library target
 # :type target: string
@@ -27,6 +27,10 @@
 #
 macro(rclcpp_components_register_node target)
   cmake_parse_arguments(ARGS "" "PLUGIN;EXECUTABLE" "" ${ARGN})
+  if(ARGS_UNPARSED_ARGUMENTS)
+    message(FATAL_ERROR "rclcpp_components_register_node() called with unused "
+      "arguments: ${ARGS_UNPARSED_ARGUMENTS}")
+  endif()
   set(component ${ARGS_PLUGIN})
   set(node ${ARGS_EXECUTABLE})
   _rclcpp_components_register_package_hook()


make testsuite aware of EIGEN_CTEST_ARGS

--- test/testsuite.cmake
+++ test/testsuite.cmake
@@ -147,6 +147,9 @@

 # which ctest command to use for running the dashboard
 SET (CTEST_COMMAND "${EIGEN_CMAKE_DIR}ctest -D ${EIGEN_MODE}")
+if($ENV{EIGEN_CTEST_ARGS})
+SET (CTEST_COMMAND "${CTEST_COMMAND} $ENV{EIGEN_CTEST_ARGS}")
+endif($ENV{EIGEN_CTEST_ARGS})
 # what cmake command to use for configuring this dashboard
 SET (CTEST_CMAKE_COMMAND "${EIGEN_CMAKE_DIR}cmake -DEIGEN_LEAVE_TEST_IN_ALL_TARGET=ON")


FindMagnum.cmake: removed duplicate code.

--- modules/FindMagnum.cmake
+++ modules/FindMagnum.cmake
@@ -191,7 +191,7 @@
         endif()

         # GLX application dependencies
-        if(${component} STREQUAL GlxApplication)
+        if(${component} STREQUAL GlxApplication OR ${component} STREQUAL WindowlessGlxApplication)
             find_package(X11)
             if(X11_FOUND)
                 set(_MAGNUM_${_COMPONENT}_LIBRARIES ${X11_LIBRARIES} ${_WINDOWCONTEXT_MAGNUM_LIBRARIES_DEPENDENCY})
@@ -206,16 +206,6 @@
             find_package(X11)
             if(EGL_FOUND AND X11_FOUND)
                 set(_MAGNUM_${_COMPONENT}_LIBRARIES ${EGL_LIBRARY} ${X11_LIBRARIES} ${_WINDOWCONTEXT_MAGNUM_LIBRARIES_DEPENDENCY})
-            else()
-                unset(MAGNUM_${_COMPONENT}_LIBRARY)
-            endif()
-        endif()
-
-        # Windowless GLX application dependencies
-        if(${component} STREQUAL WindowlessGlxApplication)
-            find_package(X11)
-            if(X11_FOUND)
-                set(_MAGNUM_${_COMPONENT}_LIBRARIES ${X11_LIBRARIES} ${_WINDOWCONTEXT_MAGNUM_LIBRARIES_DEPENDENCY})
             else()
                 unset(MAGNUM_${_COMPONENT}_LIBRARY)
             endif()


modules: bail out with proper message if Magnum is not found.

Currently it failed on "error when trying to open configure.h", which is
NOT a helpful message at all. Now we check for existence of the include
dir before trying to open the file, thus failing with proper "Could NOT
find Magnum" message.

--- modules/FindMagnum.cmake
+++ modules/FindMagnum.cmake
@@ -181,6 +181,15 @@
 find_path(MAGNUM_INCLUDE_DIR
     NAMES Magnum/Magnum.h)

+# We need to open configure.h file from MAGNUM_INCLUDE_DIR before we check for
+# the components. Bail out with proper error message if it wasn't found. The
+# complete check with all components is further below.
+if(NOT MAGNUM_INCLUDE_DIR)
+    include(FindPackageHandleStandardArgs)
+    find_package_handle_standard_args(Magnum
+        REQUIRED_VARS MAGNUM_LIBRARY MAGNUM_INCLUDE_DIR)
+endif()
+
 # Configuration
 file(READ ${MAGNUM_INCLUDE_DIR}/Magnum/configure.h _magnumConfigure)

@@ -471,7 +480,7 @@
     endif()
 endforeach()

-include(FindPackageHandleStandardArgs)
+# Complete the check with also all components
 find_package_handle_standard_args(Magnum
     REQUIRED_VARS MAGNUM_LIBRARY MAGNUM_INCLUDE_DIR
     HANDLE_COMPONENTS)


Delete cmake_install.cmake

Delete cmake_install.cmake

--- Labs/Ex-sp17/source/cmake_install.cmake
+++ Labs/Ex-sp17/source/cmake_install.cmake
@@ -1,44 +0,0 @@
-# Install script for directory: /home/moorthy/Ex-sp17
-
-# Set the install prefix
-IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
-  SET(CMAKE_INSTALL_PREFIX "/usr/local")
-ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
-STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-  IF(BUILD_TYPE)
-    STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-  ELSE(BUILD_TYPE)
-    SET(CMAKE_INSTALL_CONFIG_NAME "")
-  ENDIF(BUILD_TYPE)
-  MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-
-# Set the component getting installed.
-IF(NOT CMAKE_INSTALL_COMPONENT)
-  IF(COMPONENT)
-    MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
-    SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-  ELSE(COMPONENT)
-    SET(CMAKE_INSTALL_COMPONENT)
-  ENDIF(COMPONENT)
-ENDIF(NOT CMAKE_INSTALL_COMPONENT)
-
-# Install shared libraries without execute permission?
-IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
-  SET(CMAKE_INSTALL_SO_NO_EXE "1")
-ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
-
-IF(CMAKE_INSTALL_COMPONENT)
-  SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
-ELSE(CMAKE_INSTALL_COMPONENT)
-  SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
-ENDIF(CMAKE_INSTALL_COMPONENT)
-
-FILE(WRITE "/home/moorthy/Ex-sp17/source/${CMAKE_INSTALL_MANIFEST}" "")
-FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES})
-  FILE(APPEND "/home/moorthy/Ex-sp17/source/${CMAKE_INSTALL_MANIFEST}" "${file}\n")
-ENDFOREACH(file)


COMP: Disable wrapping

COMP: Disable wrapping

Wait until Slicer gets a version of ITK with

  http://review.source.kitware.com/#/c/21128/

or, preferrably:

  http://review.source.kitware.com/#/c/21215/

--- SuperBuild/External_ITKUltrasound.cmake
+++ SuperBuild/External_ITKUltrasound.cmake
@@ -7,11 +7,11 @@
 set(${proj}_DEPENDENCIES )
 ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES)

-# master 2016-05-29
-set(${proj}_GIT_TAG 8f848928f1f794cb46e515f8969902a5b65b30c3)
+# disable-wrapping 2016-05-30
+set(${proj}_GIT_TAG e08b714c52bef9fc45cf14558fd7cbfa4e9583df)
 ExternalProject_Add(${proj}
   ${${proj}_EP_ARGS}
-  GIT_REPOSITORY ${git_protocol}://github.com/KitwareMedical/ITKUltrasound.git
+  GIT_REPOSITORY ${git_protocol}://github.com/thewtex/ITKUltrasound.git
   GIT_TAG ${${proj}_GIT_TAG}
   SOURCE_DIR ${proj}
   BINARY_DIR ${proj}-build


TRAVIS: change ctest regex: Tu -> New

TRAVIS: change ctest regex: Tu -> New

--- Utilities/Maintenance/TravisBuild.cmake
+++ Utilities/Maintenance/TravisBuild.cmake
@@ -53,7 +53,7 @@

 ctest_build     (BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE _build_rv)

-ctest_test      (BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE Tu RETURN_VALUE _test_rv)
+ctest_test      (BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE New RETURN_VALUE _test_rv)
 # if(NOT _configure_rv EQUAL 0 OR NOT _build_rv EQUAL 0)
 # endif ()


Working on detecting hdf5 from modules

Working on detecting hdf5 from modules

Former-commit-id: 638456b0be70cb33e749b093a80f4a7b850f2903

--- cmake-modules/FindPackageHDF5.cmake
+++ cmake-modules/FindPackageHDF5.cmake
@@ -41,12 +41,12 @@

 # To print all variables, use the code below:
 ##
-get_cmake_property(_variableNames VARIABLES)
-foreach (_variableName ${_variableNames})
-    if("${_variableName}" MATCHES "HDF5" OR "${_variableName}" MATCHES "hdf5" OR "${_variableName}" MATCHES "h5")
-        message(STATUS "${_variableName}=${${_variableName}}")
-    endif()
-endforeach()
+#get_cmake_property(_variableNames VARIABLES)
+#foreach (_variableName ${_variableNames})
+#    if("${_variableName}" MATCHES "HDF5" OR "${_variableName}" MATCHES "hdf5" OR "${_variableName}" MATCHES "h5")
+#        message(STATUS "${_variableName}=${${_variableName}}")
+#    endif()
+#endforeach()

 if(HDF5_FOUND)


Additional newline for description translation


Search python libraries with same version as python interpreter version

--- salome_adm/cmake_files/FindSalomePythonLibs.cmake
+++ salome_adm/cmake_files/FindSalomePythonLibs.cmake
@@ -31,6 +31,10 @@
   MESSAGE(STATUS "Setting PYTHONLIBS_ROOT_DIR to: ${PYTHON_ROOT_DIR}")
   SET(PYTHONLIBS_ROOT_DIR "${PYTHON_ROOT_DIR}" CACHE PATH "Path to PythonLibs directory")
 ENDIF()
+IF (SALOMEPYTHONINTERP_FOUND AND NOT "${PYTHON_VERSION_STRING}" STREQUAL "")
+   # Trying to search libraries with same version as an interpreter version
+   SET(PythonLibs_FIND_VERSION ${PYTHON_VERSION_STRING})
+ENDIF()
 SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(PythonLibs PYTHON_INCLUDE_DIR 2)

 IF(SALOMEPYTHONLIBS_FOUND)


FIX: from mesaverde install

FIX: from mesaverde install

--- external/UseGDAL.cmake
+++ external/UseGDAL.cmake
@@ -57,7 +57,8 @@
     ExternalProject_Add(
       proj4
       URL "http://download.osgeo.org/proj/proj-4.8.0.tar.gz"
-      CONFIGURE_COMMAND <SOURCE_DIR>/configure
+      #URL "http://download.osgeo.org/proj/proj-4.9.0b2.tar.gz"
+      CONFIGURE_COMMAND <SOURCE_DIR>/configure --with-jni=no
       BUILD_IN_SOURCE 1
       INSTALL_COMMAND cp ${CMAKE_BINARY_DIR}/modules/omegaOsgEarth/proj4-prefix/src/proj4/src/.libs/libproj.so ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
     )
@@ -69,6 +70,7 @@
         CMAKE_ARGS
           -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
           -DBUILD_SHARED_LIBS=ON
+          -DENABLE_DAP=OFF
           -DHDF5_DIR:PATH=${CMAKE_BINARY_DIR}/modules/omegaOsgEarth/hdf5-prefix/src/hdf5-build
           -DHDF5_LIBRARIES:PATH=${CMAKE_BINARY_DIR}/modules/omegaOsgEarth/hdf5-prefix/src/hdf5-install/lib/libhdf5.a
           -DHDF5_INCLUDE_DIR=${CMAKE_BINARY_DIR}/modules/omegaOsgEarth/hdf5-prefix/src/hdf5-install/include


fixed: boost lib dir setup (win32)

fixed: boost lib dir setup (win32)

--- share/hugh/cmake/CMakeAddons_SetupVariables.cmake
+++ share/hugh/cmake/CMakeAddons_SetupVariables.cmake
@@ -38,10 +38,11 @@

   find_package(Boost ${BOOST_MINIMUM_VERSION})
   if(Boost_FOUND)
-    if(EXISTS "${Boost_LIBRARY_DIR}" AND IS_DIRECTORY "${Boost_LIBRARY_DIR}")
-      set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LIBPATH:${Boost_LIBRARY_DIR}")
-      set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /LIBPATH:${Boost_LIBRARY_DIR}")
-      set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS} /LIBPATH:${Boost_LIBRARY_DIR}")
+    if(EXISTS "${Boost_LIBRARY_DIRS}" AND IS_DIRECTORY "${Boost_LIBRARY_DIRS}")
+      link_directories(${Boost_LIBRARY_DIRS})
+      set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LIBPATH:${Boost_LIBRARY_DIRS}")
+      set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /LIBPATH:${Boost_LIBRARY_DIRS}")
+      set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS} /LIBPATH:${Boost_LIBRARY_DIRS}")
     endif()
   endif()
 elseif(CMAKE_HOST_UNIX)


Fix compile bug for arm

Fix compile bug for arm

--- cmake/FindUnwind.cmake
+++ cmake/FindUnwind.cmake
@@ -10,7 +10,7 @@
 find_library (Unwind_LIBRARY NAMES unwind DOC "unwind library")

 if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
-    set (Unwind_ARCH "arm")
+    set (Unwind_ARCH "unwind-arm")
 elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
     set (Unwind_ARCH "unwind-aarch64")
 elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR


Added rocky alma details

Added rocky alma details

--- cmake/EnumerateSystem.cmake
+++ cmake/EnumerateSystem.cmake
@@ -32,6 +32,22 @@
         set(RPM_SYSTEM_NAME "rhel${CMAKE_MATCH_1}")
         set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "RPM")
       endif(LINUX_ISSUE MATCHES "Red Hat")
+      # AlmaLinux case
+      if(LINUX_ISSUE MATCHES "AlmaLinux")
+        string(REGEX MATCH "release ([0-9]+)" ALMALINUX "${LINUX_ISSUE}")
+        set(LINUX_NAME "AlmaLinux")
+        set(LINUX_VER "${CMAKE_MATCH_1}")
+        set(RPM_SYSTEM_NAME "rhel${CMAKE_MATCH_1}")
+        set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "RPM")
+      endif(LINUX_ISSUE MATCHES "AlmaLinux")
+      # Rocky Linux case
+      if(LINUX_ISSUE MATCHES "Rocky Linux")
+        string(REGEX MATCH "release ([0-9]+)" ROCKY LINUX "${LINUX_ISSUE}")
+        set(LINUX_NAME "Rocky Linux")
+        set(LINUX_VER "${CMAKE_MATCH_1}")
+        set(RPM_SYSTEM_NAME "rhel${CMAKE_MATCH_1}")
+        set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "RPM")
+      endif(LINUX_ISSUE MATCHES "Rocky Linux")
     elseif(EXISTS "/etc/issue")
       set(LINUX_NAME "")
       file(READ "/etc/issue" LINUX_ISSUE)


Removed additional ZeroMQ reference.

Removed additional ZeroMQ reference.

--- cmake/configs/default.cmake
+++ cmake/configs/default.cmake
@@ -144,7 +144,6 @@
 hunter_config(xrender VERSION 0.9.7)
 hunter_config(xshmfence VERSION 1.2)
 hunter_config(xtrans VERSION 1.2.7)
-hunter_config(ZeroMQ VERSION 4.1.4)
 hunter_config(SDL2 VERSION 2.0.4-h1)

 if(MINGW OR MSVC80)


Add a missing common variable to the lit.site.cfg generation. This was
only used in the Clang tree, but it seems reasonable to support.

git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@159399 91177308-0d34-0410-b5e6-96231b3b80d8

--- cmake/modules/AddLLVM.cmake
+++ cmake/modules/AddLLVM.cmake
@@ -233,6 +233,7 @@
   set(LLVM_SOURCE_DIR ${LLVM_MAIN_SRC_DIR})
   set(LLVM_BINARY_DIR ${LLVM_BINARY_DIR})
   set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}/%(build_config)s")
+  set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib/%(build_config)s")
   set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})
   set(ENABLE_SHARED ${LLVM_SHARED_LIBS_ENABLED})
   set(SHLIBPATH_VAR ${SHLIBPATH_VAR})


BUG:Only display report message when something change.

--- CMake/vtkTestGLX.cmake
+++ CMake/vtkTestGLX.cmake
@@ -83,6 +83,12 @@
 set(CMAKE_REQUIRED_INCLUDES ${OPENGL_INCLUDE_DIR})
 set(CMAKE_REQUIRED_LIBRARIES ${OPENGL_gl_LIBRARY})

+if(DEFINED GLX_DEFINES_MACRO_GLX_VERSION_1_1)
+ set(REPORT_STATUS 0)
+else()
+ set(REPORT_STATUS 1)
+endif()
+
 # -----------------------------------------------------------------------------
 # GLX_DEFINES_MACRO_GLX_VERSION_1_1
 # -----------------------------------------------------------------------------
@@ -324,20 +330,20 @@

 # -----------------------------------------------------------------------------
 # cmake macro debugging
-
-message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_1=${GLX_DEFINES_MACRO_GLX_VERSION_1_1}")
-message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_2=${GLX_DEFINES_MACRO_GLX_VERSION_1_2}")
-message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_3=${GLX_DEFINES_MACRO_GLX_VERSION_1_3}")
-message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_4=${GLX_DEFINES_MACRO_GLX_VERSION_1_4}")
-message(STATUS "GLX_DEFINES_MACRO_GLX_ARB_get_proc_address=${GLX_DEFINES_MACRO_GLX_ARB_get_proc_address}")
-message(STATUS "GLX_INCLUDES_GLXEXT=${GLX_INCLUDES_GLXEXT}")
-message(STATUS "GLX_USES_MACRO_GLX_GLXEXT_LEGACY=${GLX_USES_MACRO_GLX_GLXEXT_LEGACY}")
-message(STATUS "GLX_DEFINES_TYPE_GLXextFuncPtr=${GLX_DEFINES_TYPE_GLXextFuncPtr}")
-message(STATUS "GLX_DEFINES_TYPE_GLXextFuncPtr_AS_EMPTY=${GLX_DEFINES_TYPE_GLXextFuncPtr_AS_EMPTY}")
-message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddressARB=${GLX_DECLARES_FUNCTION_glXGetProcAddressARB}")
-message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddress=${GLX_DECLARES_FUNCTION_glXGetProcAddress}")
-message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddressARB_AS_EMPTY=${GLX_DECLARES_FUNCTION_glXGetProcAddressARB_AS_EMPTY}")
-message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddress_AS_EMPTY=${GLX_DECLARES_FUNCTION_glXGetProcAddress_AS_EMPTY}")
-message(STATUS "GLX_DEFINES_TYPE_GLXFBConfig=${GLX_DEFINES_TYPE_GLXFBConfig}")
-
+if(${REPORT_STATUS})
+ message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_1=${GLX_DEFINES_MACRO_GLX_VERSION_1_1}")
+ message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_2=${GLX_DEFINES_MACRO_GLX_VERSION_1_2}")
+ message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_3=${GLX_DEFINES_MACRO_GLX_VERSION_1_3}")
+ message(STATUS "GLX_DEFINES_MACRO_GLX_VERSION_1_4=${GLX_DEFINES_MACRO_GLX_VERSION_1_4}")
+ message(STATUS "GLX_DEFINES_MACRO_GLX_ARB_get_proc_address=${GLX_DEFINES_MACRO_GLX_ARB_get_proc_address}")
+ message(STATUS "GLX_INCLUDES_GLXEXT=${GLX_INCLUDES_GLXEXT}")
+ message(STATUS "GLX_USES_MACRO_GLX_GLXEXT_LEGACY=${GLX_USES_MACRO_GLX_GLXEXT_LEGACY}")
+ message(STATUS "GLX_DEFINES_TYPE_GLXextFuncPtr=${GLX_DEFINES_TYPE_GLXextFuncPtr}")
+ message(STATUS "GLX_DEFINES_TYPE_GLXextFuncPtr_AS_EMPTY=${GLX_DEFINES_TYPE_GLXextFuncPtr_AS_EMPTY}")
+ message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddressARB=${GLX_DECLARES_FUNCTION_glXGetProcAddressARB}")
+ message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddress=${GLX_DECLARES_FUNCTION_glXGetProcAddress}")
+ message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddressARB_AS_EMPTY=${GLX_DECLARES_FUNCTION_glXGetProcAddressARB_AS_EMPTY}")
+ message(STATUS "GLX_DECLARES_FUNCTION_glXGetProcAddress_AS_EMPTY=${GLX_DECLARES_FUNCTION_glXGetProcAddress_AS_EMPTY}")
+ message(STATUS "GLX_DEFINES_TYPE_GLXFBConfig=${GLX_DEFINES_TYPE_GLXFBConfig}")
+endif()
 #message("vtkTestGLX.cmake last line.")


Fix typo.

Fix typo.

--- CompilerFeatures.cmake
+++ CompilerFeatures.cmake
@@ -11,7 +11,7 @@

 if(COMPILER_SUPPORTS_CXX11)
     set(CMAKE_REQUIRED_FLAGS "-std=c++11")
-elif(COMPILER_SUPPORTS_CXX0X)
+elseif(COMPILER_SUPPORTS_CXX0X)
     set(CMAKE_REQUIRED_FLAGS "-std=c++0x")
 endif()


Forgot FindTinyXML.cmake in last commit.


Try to set environment variable osx deployment target for python wheel

--- cmake/PythonWheel.cmake
+++ cmake/PythonWheel.cmake
@@ -1,5 +1,8 @@
 message(STATUS "Creating setup.py for python ${PYTHON_VERSION} wheel...")

 configure_file(${FAST_SOURCE_DIR}/source/FAST/Python/setup.py.in ${FAST_BINARY_DIR}/python/setup.py @ONLY IMMEDIATE)
-
+if(APPLE)
+execute_process(COMMAND MACOSX_DEPLOYMENT_TARGET=10.13 ${PYTHON_EXECUTABLE} setup.py bdist_wheel --py-limited-api cp36 WORKING_DIRECTORY "${FAST_BINARY_DIR}/python/")
+else()
 execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py bdist_wheel --py-limited-api cp36 WORKING_DIRECTORY "${FAST_BINARY_DIR}/python/")
+endif()


cmake: ARM toolchain: find ld/ar

cmake: ARM toolchain: find ld/ar

--- platforms/linux/arm.toolchain.cmake
+++ platforms/linux/arm.toolchain.cmake
@@ -32,6 +32,16 @@
   find_program(CMAKE_CXX_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX})
 else()
   #message(WARNING "CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} is defined")
+endif()
+if(NOT DEFINED CMAKE_LINKER)
+  find_program(CMAKE_LINKER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld)
+else()
+  #message(WARNING "CMAKE_LINKER=${CMAKE_LINKER} is defined")
+endif()
+if(NOT DEFINED CMAKE_AR)
+  find_program(CMAKE_AR NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar)
+else()
+  #message(WARNING "CMAKE_AR=${CMAKE_AR} is defined")
 endif()

 if(NOT DEFINED ARM_LINUX_SYSROOT AND DEFINED GNU_MACHINE)


Missed a spot, this added in a stray -

Missed a spot, this added in a stray -

The build name ends with a stray '-' before the file type.

--- projects/tomviz.bundle.common.cmake
+++ projects/tomviz.bundle.common.cmake
@@ -14,4 +14,4 @@
 set(CPACK_RESOURCE_FILE_LICENSE "${TomvizSuperbuild_SOURCE_DIR}/LICENSE")

 set(CPACK_PACKAGE_FILE_NAME
-  "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${package_suffix}")
+  "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")


turn off PCH support for GCC 3.x

turn off PCH support for GCC 3.x

--- OpenCVPCHSupport.cmake
+++ OpenCVPCHSupport.cmake
@@ -21,10 +21,6 @@
     #MESSAGE("GCC Version: ${gcc_compiler_version}")
     IF(gcc_compiler_version MATCHES "4\\.[0,2-9]\\.[0-9]")
         SET(PCHSupport_FOUND TRUE)
-    ELSE()
-        IF(gcc_compiler_version MATCHES "3\\.4\\.[0-9]")
-            SET(PCHSupport_FOUND TRUE)
-        ENDIF()
     ENDIF()

 	SET(_PCH_include_prefix "-I")


cmake/MyPackageDependency.cmake: skip an unwanted warning

--- cmake/MyPackageDependency.cmake
+++ cmake/MyPackageDependency.cmake
@@ -95,7 +95,7 @@
         ENDIF ()
       ENDIF ()
     ELSE ()
-      MESSAGE (WARNING "[${PROJECT_NAME}-DEPEND-WARNING] Target ${packageDepend} already exist - use MyPackageDependency to avoid this warning")
+      # MESSAGE (WARNING "[${PROJECT_NAME}-DEPEND-WARNING] Target ${packageDepend} already exist - use MyPackageDependency to avoid this warning")
       IF (MYPACKAGE_DEBUG)
         MESSAGE (STATUS "[${PROJECT_NAME}-DEPEND-DEBUG] Setting property MYPACKAGE_DEPENDENCY_${packageDepend} to DONE")
       ENDIF ()


Fix indentation of 98a157f5.

Fix indentation of 98a157f5.

--- cmake/OpenCVFindLibsVideo.cmake
+++ cmake/OpenCVFindLibsVideo.cmake
@@ -219,28 +219,28 @@
         FIND_FILE(BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib)
       endif()
     else()
-    find_path(FFMPEG_INCLUDE_DIR "libavformat/avformat.h"
-              PATHS /usr/local /usr /opt
-              PATH_SUFFIXES include
-              DOC "The path to FFMPEG headers")
-    if(FFMPEG_INCLUDE_DIR)
-      set(HAVE_GENTOO_FFMPEG TRUE)
-      set(FFMPEG_LIB_DIR "${FFMPEG_INCLUDE_DIR}/../lib" CACHE PATH "Full path of FFMPEG library directory")
-      find_library(FFMPEG_CODEC_LIB "avcodec" HINTS "${FFMPEG_LIB_DIR}")
-      find_library(FFMPEG_FORMAT_LIB "avformat" HINTS "${FFMPEG_LIB_DIR}")
-      find_library(FFMPEG_UTIL_LIB "avutil" HINTS "${FFMPEG_LIB_DIR}")
-      find_library(FFMPEG_SWSCALE_LIB "swscale" HINTS "${FFMPEG_LIB_DIR}")
-      if(FFMPEG_CODEC_LIB AND FFMPEG_FORMAT_LIB AND
-         FFMPEG_UTIL_LIB AND FFMPEG_SWSCALE_LIB)
-        set(HAVE_FFMPEG 1)
-      endif()
-    endif(FFMPEG_INCLUDE_DIR)
-    if(HAVE_FFMPEG)
-      set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES}
-          ${FFMPEG_CODEC_LIB} ${FFMPEG_FORMAT_LIB}
-          ${FFMPEG_UTIL_LIB} ${FFMPEG_SWSCALE_LIB})
-      ocv_include_directories(${FFMPEG_INCLUDE_DIR})
-    endif()
+      find_path(FFMPEG_INCLUDE_DIR "libavformat/avformat.h"
+                PATHS /usr/local /usr /opt
+                PATH_SUFFIXES include
+                DOC "The path to FFMPEG headers")
+      if(FFMPEG_INCLUDE_DIR)
+        set(HAVE_GENTOO_FFMPEG TRUE)
+        set(FFMPEG_LIB_DIR "${FFMPEG_INCLUDE_DIR}/../lib" CACHE PATH "Full path of FFMPEG library directory")
+        find_library(FFMPEG_CODEC_LIB "avcodec" HINTS "${FFMPEG_LIB_DIR}")
+        find_library(FFMPEG_FORMAT_LIB "avformat" HINTS "${FFMPEG_LIB_DIR}")
+        find_library(FFMPEG_UTIL_LIB "avutil" HINTS "${FFMPEG_LIB_DIR}")
+        find_library(FFMPEG_SWSCALE_LIB "swscale" HINTS "${FFMPEG_LIB_DIR}")
+        if(FFMPEG_CODEC_LIB AND FFMPEG_FORMAT_LIB AND
+           FFMPEG_UTIL_LIB AND FFMPEG_SWSCALE_LIB)
+          set(HAVE_FFMPEG 1)
+        endif()
+      endif(FFMPEG_INCLUDE_DIR)
+      if(HAVE_FFMPEG)
+        set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES}
+            ${FFMPEG_CODEC_LIB} ${FFMPEG_FORMAT_LIB}
+            ${FFMPEG_UTIL_LIB} ${FFMPEG_SWSCALE_LIB})
+        ocv_include_directories(${FFMPEG_INCLUDE_DIR})
+      endif(HAVE_FFMPEG)
     endif()
   endif()
 endif(WITH_FFMPEG)


C++14 support means C++11 is supported too.

--- cmake/ProjectGlobalMacros.cmake
+++ cmake/ProjectGlobalMacros.cmake
@@ -15,6 +15,7 @@
     # Tests for Clang and GCC
     check_cxx_compiler_flag(-std=c++1y CPP14_SUPPORT)
     if (CPP14_SUPPORT)
+      set(CPP11_SUPPORT TRUE)
       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
       message("-- C++14 support found.")
     else()
@@ -30,6 +31,7 @@
     # this is poor informatiion about actual support
     check_cxx_source_compiles("#include <utility>\nusing std::integer_sequence;\n int main(){return 0;}" CPP14_SUPPORT)
     if (CPP14_SUPPORT)
+      set(CPP11_SUPPORT TRUE)
       message("-- C++14 support found.")
     else()
       check_cxx_source_compiles("static constexpr int TEST=0;\n int main(){return 0;}" CPP11_SUPPORT)


cmake: Vastly improve documentation of the macros, which also includes keeping up with the new macros design

--- cmake/modules/TpQt4Macros.cmake
+++ cmake/modules/TpQt4Macros.cmake
@@ -6,6 +6,14 @@

 #
 # These macros/functions are not exported - they are meant for internal usage into Telepathy-Qt4's build system.
+#
+# Preamble: How dynamic generators are handled with the CMake build system.
+# Telepathy-Qt4 strongly relies upon lots of files generated at build time through some python programs, found
+# in tools/. To avoid developers the struggle of handling those manually, a set of convenience macros have been
+# created to handle them with the correct dependencies. Each of those macros takes a target name as a first argument
+# and creates a target with that exact name. In a similar fashion, in the last argument you can specify a list
+# of targets the generated target will depend on. This way, you can handle transparently dependencies between
+# generated files, while the dirty stuff is done for you in the background.
 #
 # macro    TPQT4_EXTRACT_DEPENDS (tpqt4_other tpqt4_depends)
 #          Internal macro used to extract arguments from ARGN
@@ -46,29 +54,31 @@
 #          path to the manager-file.py file which should be used, the second is the output filename of the manager,
 #          and the third is the path to the file which depends on the generated manager file.
 #
-# function TPQT4_XINCLUDATOR (INPUT_FILE OUTPUT_FILE [additional_arguments ...] [DEPENDS dependencies ...])
-#          This function takes care of invoking xincludator.py with the correct arguments. The first argument is
-#          the input spec, the second one is the filename the generated file will be saved to. This function also accepts
-#          as an optional last argument a list of files which has to be present before xincludator is launched.
-#          After issuing DEPENDS in the last argument you can pass a list of files the command will depend on.
-#
-# function TPQT4_CONSTANTS_GEN (SPEC_XML OUTPUT_FILE [additional_arguments ...] [DEPENDS dependencies ...])
-#          This function takes care of invoking qt4-constants-gen.py with the correct arguments. The first argument
-#          is the spec file, the second one is the filename the generated file will be saved to. This function also accepts
-#          as an optional last argument a list of additional command line arguments which will be passed to
-#          qt4-constants-gen.py upon execution.
-#          After issuing DEPENDS in the last argument you can pass a list of files the command will depend on.
-#
-# function TPQT4_TYPES_GEN (spec_xml outfile_decl outfile_impl namespace
-#                           realinclude prettyinclude [additional_arguments ...] [DEPENDS dependencies ...])
-#          This function takes care of invoking qt4-types-gen.py with the correct arguments. spec_xml
-#          is the spec file, outfile_decl is the filename the header of the generated file will be saved to,
-#          outfile_impl is the filename the implementation of the generated file will be saved to, namespace
-#          is the C++ namespace the generated header will belong to, realinclude is the real include file
-#          you want to use, prettyinclude is the name of the capitalized header (for example ClientGenerator).
+# function TPQT4_XINCLUDATOR (TARGET_NAME INPUT_FILE OUTPUT_FILE [additional_arguments ...] [DEPENDS dependencies ...])
+#          This function takes care of invoking xincludator.py with the correct arguments. TARGET_NAME is the name of
+#          the generated target (see preamble), INPUT_FILE is the input spec file, OUTPUT_FILE is the filename
+#          the generated file will be saved to. This function also accepts as an optional last argument a list of
+#          additional command line arguments which will be passed to xincludator upon execution.
+#          After issuing DEPENDS in the last argument you can pass a list of targets the generated target will depend on.
+#
+# function TPQT4_CONSTANTS_GEN (TARGET_NAME SPEC_XML OUTPUT_FILE [additional_arguments ...] [DEPENDS dependencies ...])
+#          This function takes care of invoking qt4-constants-gen.py with the correct arguments. TARGET_NAME is the name of
+#          the generated target (see preamble), SPEC_XML is the spec input file, OUTPUT_FILE is the filename
+#          the generated file will be saved to. This function also accepts as an optional last argument a list of
+#          additional command line arguments which will be passed to qt4-constants-gen.py upon execution.
+#          After issuing DEPENDS in the last argument you can pass a list of targets the generated target will depend on.
+#
+# function TPQT4_TYPES_GEN (TARGET_NAME SPEC_XML OUTFILE_DECL OUTFILE_IMPL NAMESPACE
+#                           REAL_INCLUDE PRETTY_INCLUDE [additional_arguments ...] [DEPENDS dependencies ...])
+#          This function takes care of invoking qt4-types-gen.py with the correct arguments. TARGET_NAME is the name of
+#          the generated target (see preamble), SPEC_XML is the input spec file, OUTFILE_DECL is the filename
+#          the header of the generated file will be saved to, OUTFILE_IMPL is the filename the implementation of the
+#          generated file will be saved to, NAMESPACE is the C++ namespace the generated header will belong to,
+#          REAL_INCLUDE is the real include file you want to use, PRETTY_INCLUDE is the name of the capitalized header
+#          (for example ClientGenerator).
 #          This function also accepts as an optional last argument a list of additional command line arguments
 #          which will be passed to qt4-constants-gen.py upon execution.
-#          After issuing DEPENDS in the last argument you can pass a list of files the command will depend on.
+#          After issuing DEPENDS in the last argument you can pass a list of targets the generated target will depend on.
 #
 # macro TPQT4_ADD_GENERIC_UNIT_TEST (fancyName name [libraries ...])
 #       This macro takes care of building and adding a generic unit test to the automatic CTest suite. The requirement


update: disable 'test_coverage_zero' command (fails for clang on travis ci)

--- share/hugh/cmake/SetupUnitTests.cmake
+++ share/hugh/cmake/SetupUnitTests.cmake
@@ -73,8 +73,9 @@
       list(APPEND LCOV_ARGS "--quiet")
     endif()

-    list(APPEND LCOV_ARGS "--rc lcov_branch_coverage=1")
-    list(APPEND LCOV_ARGS "--rc lcov_function_coverage=1")
+    #list(APPEND LCOV_ARGS "--debug")
+    #list(APPEND LCOV_ARGS "--rc lcov_branch_coverage=1")
+    #list(APPEND LCOV_ARGS "--rc lcov_function_coverage=1")

     if(VERBOSE)
       message(STATUS "Found GCOV front-end: ${LCOV} ${LCOV_ARGS}")
@@ -87,11 +88,11 @@

     set(CAPTURE_FNAME "coverage.info")

-    add_custom_command(TARGET test_coverage_zero POST_BUILD
-      COMMENT "Cleaning coverage data"
-      COMMAND ${LCOV} ${LCOV_ARGS} --zerocounters --directory .
-      COMMAND ${CMAKE_COMMAND} -E remove ${CAPTURE_FNAME}
-      WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+    #add_custom_command(TARGET test_coverage_zero POST_BUILD
+    #  COMMAND ${LCOV} ${LCOV_ARGS} --zerocounters --directory .
+    #  COMMAND ${CMAKE_COMMAND} -E remove ${CAPTURE_FNAME}
+    #  COMMENT "Cleaning coverage data"
+    #  WORKING_DIRECTORY ${CMAKE_BINARY_DIR})

     list(APPEND LCOV_ARGS "--output-file ${CAPTURE_FNAME}")
     separate_arguments(LCOV_ARGS)


ERR: User projects need OpenGL include directories.

--- GenerateVTKConfig.cmake
+++ GenerateVTKConfig.cmake
@@ -23,6 +23,11 @@
 # Include directories for other projects installed on the system and
 # used by VTK.
 SET(VTK_INCLUDE_DIRS_SYS "")
+IF(VTK_USE_RENDERING)
+  SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} ${OPENGL_INCLUDE_PATH})
+  SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} ${OPENGL_INCLUDE_DIR})
+ENDIF(VTK_USE_RENDERING)
+
 IF(VTK_OPENGL_HAS_OSMESA)
   SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} ${OSMESA_INCLUDE_PATH})
 ENDIF(VTK_OPENGL_HAS_OSMESA)


use /mt instead of /md when build type is RelWithDebInof or MinSizeRel

--- build/cmake/DefinePlatformSpecifc.cmake
+++ build/cmake/DefinePlatformSpecifc.cmake
@@ -44,6 +44,8 @@
                 CMAKE_CXX_FLAGS
                 CMAKE_CXX_FLAGS_DEBUG
                 CMAKE_CXX_FLAGS_RELEASE
+                CMAKE_CXX_FLAGS_RELWITHDEBINFO
+                CMAKE_CXX_FLAGS_MINSIZEREL
                 CMAKE_C_FLAGS
                 CMAKE_C_FLAGS_DEBUG
                 CMAKE_C_FLAGS_RELEASE


Fix Android toolchain so that Clang always comes after GCC. Merge some of the changes from one of the android-cmake's PR for NDK r10c.

--- Source/CMake/Toolchains/android.toolchain.cmake
+++ Source/CMake/Toolchains/android.toolchain.cmake
@@ -645,9 +645,8 @@
  endif()
  if( NOT __availableToolchains )
   file( GLOB __availableToolchainsLst RELATIVE "${ANDROID_NDK_TOOLCHAINS_PATH}" "${ANDROID_NDK_TOOLCHAINS_PATH}/*" )
-  if( __availableToolchains )
-   list(SORT __availableToolchainsLst) # we need clang to go after gcc
-  endif()
+  # Urho3D: bug fix
+  list(SORT __availableToolchainsLst) # we need clang to go after gcc
   __LIST_FILTER( __availableToolchainsLst "^[.]" )
   __LIST_FILTER( __availableToolchainsLst "llvm" )
   __LIST_FILTER( __availableToolchainsLst "renderscript" )
@@ -1302,6 +1301,9 @@
  set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv6 -mfloat-abi=softfp -mfpu=vfp" ) # vfp == vfpv2
 elseif( ARMEABI )
  set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv5te -mtune=xscale -msoft-float" )
+# Urho3D: merged from gongminmin's PR
+elseif( ARM64_V8A )
+ set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv8-a" )
 endif()

 if( ANDROID_STL MATCHES "gnustl" AND (EXISTS "${__libstl}" OR EXISTS "${__libsupcxx}") )
@@ -1616,6 +1618,13 @@
   set( ${VAR} "x86" )
  elseif( "${TOOLCHAIN_FLAG}" STREQUAL "MIPS" )
   set( ${VAR} "mips" )
+# Urho3D: merged from gongminmin's PR
+ elseif( "${TOOLCHAIN_FLAG}" STREQUAL "ARM64_V8A" )
+  set( ${VAR} "arm64-v8a" )
+ elseif( "${TOOLCHAIN_FLAG}" STREQUAL "X86_64" )
+  set( ${VAR} "x86_64" )
+ elseif( "${TOOLCHAIN_FLAG}" STREQUAL "MIPS64" )
+  set( ${VAR} "mips64" )
  else()
   set( ${VAR} "unknown" )
  endif()


FIX (#1201): yet another fix for Qmitk installation ...

--- CMake/CoreHelpers.cmake
+++ CMake/CoreHelpers.cmake
@@ -46,13 +46,13 @@
   ENDIF(MOC_H_FILES)
   ADD_LIBRARY(Qmitk${LIBPOSTFIX} ${ARGV0} ${CPP_FILES} ${Q${KITNAME}_GENERATED_CPP})
   TARGET_LINK_LIBRARIES(Qmitk${LIBPOSTFIX} ${QT_LIBRARIES} ${${KITNAME}_CORE_LIBRARIES})
-  IF(ARGV0 STREQUAL "SHARED")
+  IF("${ARGV0}" STREQUAL "SHARED")
       INSTALL(TARGETS Qmitk${LIBPOSTFIX}
           RUNTIME DESTINATION bin
           LIBRARY DESTINATION lib
           ARCHIVE DESTINATION lib/static
       )
-  ENDIF(ARGV0 STREQUAL "SHARED")
+  ENDIF("${ARGV0}" STREQUAL "SHARED")
 ENDMACRO(CREATE_QMITK)

 MACRO(CREATE_Q4MITK)


ENH : comment INCLUDE_DIR

ENH : comment INCLUDE_DIR

--- CMake/ImportExpat.cmake
+++ CMake/ImportExpat.cmake
@@ -12,8 +12,9 @@
     FIND_PACKAGE(EXPAT)
     IF(EXPAT_FOUND)
         # Control expat compatibility
-        INCLUDE_DIRECTORIES(BEFORE ${EXPAT_INCLUDE_DIR})
-        LINK_DIRECTORIES( ${EXPAT_LIBRARY} )
+		# included from otbIncludeDirectories
+        #INCLUDE_DIRECTORIES(BEFORE ${EXPAT_INCLUDE_DIR})
+        #LINK_DIRECTORIES( ${EXPAT_LIBRARY} )
     ELSE(EXPAT_FOUND)
         MESSAGE(FATAL_ERROR
                   "Cannot build OTB project without lib EXPAT.  Please set EXPAT_DIR or set OTB_USE_EXTERNAL_EXPAT OFF to use INTERNAL EXPAT set on OTB/Utilities repository.")
@@ -24,8 +25,8 @@
     MESSAGE(STATUS "  Expat library  : ${EXPAT_LIBRARY}")
 ELSE(OTB_USE_EXTERNAL_EXPAT)
     ADD_DEFINITIONS(-DOTB_USE_INTERNAL_EXPAT)
-    INCLUDE_DIRECTORIES(BEFORE "${OTB_SOURCE_DIR}/Utilities/otbexpat")
-    INCLUDE_DIRECTORIES(BEFORE "${OTB_BINARY_DIR}/Utilities/otbexpat")
+    #INCLUDE_DIRECTORIES(BEFORE "${OTB_SOURCE_DIR}/Utilities/otbexpat")
+    #INCLUDE_DIRECTORIES(BEFORE "${OTB_BINARY_DIR}/Utilities/otbexpat")
     IF(NOT BUILD_SHARED_LIBS)
       ADD_DEFINITIONS(-DXML_STATIC)
     ENDIF(NOT BUILD_SHARED_LIBS)


Added a check for dpkg, will only build debian (.deb) files when dpkg is found.

--- CMakeInstallation.cmake
+++ CMakeInstallation.cmake
@@ -39,6 +39,8 @@
 # Nullsoft Installation System (NSIS)
 ###

+SET(CPACK_PACKAGE_CONTACT "NetCDF Support <support-netcdf@unidata.ucar.edu>")
+
 IF(WIN32)
   SET(CPACK_NSIS_MODIFY_PATH ON)
   SET(CPACK_NSIS_DISPLAY_NAME "NetCDF ${netCDF_VERSION}")
@@ -54,6 +56,27 @@

 ENDIF()

+###
+# Set debian-specific options used when
+# creating .deb.
+#
+# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators
+###
+
+# This should be set using the output of dpkg --print-architecture.
+FIND_PROGRAM(NC_DPKG NAMES dpkg)
+IF(NC_DPKG)
+  # Define a macro for getting the dpkg architecture.
+  MACRO(getdpkg_arch arch)
+    exec_program("${NC_DPKG}" ARGS "--print-architecture" OUTPUT_VARIABLE "${arch}")
+  ENDMACRO(getdpkg_arch)
+  getdpkg_arch(dpkg_arch)
+
+  SET(CPACK_DEBIAN_PACKAGE_NAME "netcdf4-dev")
+  SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${dpkg_arch}")
+  SET(CPACK_DEBIAN_PACKAGE_DEPENDS "zlib1g (>= 1:1.2.8), libhdf5-dev (>= 1.8.11), libcurl4-openssl-dev (>= 7.35.0)")
+ENDIF()
+

 ##
 # Set Copyright, License info for CPack.
@@ -66,6 +89,10 @@
 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYRIGHT.txt")
 IF(NOT CPACK_PACK_VERSION)
   SET(CPACK_PACKAGE_VERSION ${VERSION})
+ENDIF()
+
+IF(UNIX)
+  SET(CPACK_GENERATOR "STGZ" "TBZ2" "DEB" "ZIP")
 ENDIF()

 IF(APPLE)


TEST: remove .cmake config file from OTB (to DevUtil)

--- Testing/Config/Debian-Debug-pc-christophe.cmake
+++ Testing/Config/Debian-Debug-pc-christophe.cmake
@@ -1,5 +0,0 @@
-SET( CMAKE_BUILD_TYPE "Debug" CACHE STRING "debianDebug" FORCE )
-SET( OTB_USE_CURL "ON" CACHE STRING "debianDebug" FORCE )
-SET( USE_FFTWD "ON" CACHE STRING "debianDebug" FORCE )
-SET( USE_FFTWF "ON" CACHE STRING "debianDebug" FORCE )
-


SVN_SILENT made messages (.desktop file)

--- gstreamer/gstreamer.desktop.cmake
+++ gstreamer/gstreamer.desktop.cmake
@@ -104,7 +104,7 @@
 Comment[ru]=Механизм GStreamer для Phonon
 Comment[se]=Phonon GStreamer duogášmohtor
 Comment[sk]=GStreamer podsystém
-Comment[sl]=Phononova hrbtenica GStreamer
+Comment[sl]=Zaledje GStreamer za Phonon
 Comment[sr]=Гстример као позадина Фонона
 Comment[sr@ijekavian]=Гстример као позадина Фонона
 Comment[sr@ijekavianlatin]=GStreamer kao pozadina Phonona


cmake: Fix -D_FORTIFY_SOURCE detection.

cmake: Fix -D_FORTIFY_SOURCE detection.

--- cmake/Modules/DefineCompilerFlags.cmake
+++ cmake/Modules/DefineCompilerFlags.cmake
@@ -28,7 +28,7 @@

         if (CMAKE_BUILD_TYPE)
             string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
-            if (NOT CMAKE_BUILD_TYPE_LOWER MATCHES debug)
+            if (CMAKE_BUILD_TYPE_LOWER MATCHES (release|relwithdebinfo|minsizerel))
                 check_c_compiler_flag("-D_FORTIFY_SOURCE=2" WITH_FORTIFY_SOURCE)
                 if (WITH_FORTIFY_SOURCE)
                     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_FORTIFY_SOURCE=2")


Changed to use telepathy-logger 0.2 This module needs to be properly implemented

--- cmake/modules/FindTelepathyLogger.cmake
+++ cmake/modules/FindTelepathyLogger.cmake
@@ -1,2 +1,2 @@
-set (TELEPATHY_LOGGER_INCLUDE_DIR /usr/include/telepathy-logger-0.1)
+set (TELEPATHY_LOGGER_INCLUDE_DIR /usr/include/telepathy-logger-0.2)
 find_library (TELEPATHY_LOGGER_LIBRARIES telepathy-logger)


STYLE: Remove unused CMake option

STYLE: Remove unused CMake option

--- Common.cmake
+++ Common.cmake
@@ -21,9 +21,6 @@
 option(BUILD_TESTING "tests" ON)

 set(PRIMARY_PROJECT_NAME ${LOCAL_PROJECT_NAME})
-
-option(INSTALL_DEVELOPMENT_${LOCAL_PROJECT_NAME} "Install development support include and libraries for external packages." OFF)
-mark_as_advanced(INSTALL_DEVELOPMENT_${LOCAL_PROJECT_NAME})

 #-----------------------------------------------------------------------------
 # Sanity checks


Separate C++ warnings from C

Separate C++ warnings from C

--- Common.cmake
+++ Common.cmake
@@ -89,7 +89,9 @@
   if(GCC_COMPILER_VERSION VERSION_LESS 4.1)
     message(ERROR "GCC 4.1 or later required, found ${GCC_COMPILER_VERSION}")
   endif()
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Winvalid-pch -Wnon-virtual-dtor -Wsign-promo -Winit-self -Wno-unknown-pragmas -Wno-unused-parameter")
+  set(COMMON_GCC_FLAGS "-Wall -Wextra -Winvalid-pch -Winit-self -Wno-unknown-pragmas -Wno-unused-parameter"
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_GCC_FLAGS} ")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_GCC_FLAGS} -Wnon-virtual-dtor -Wsign-promo")
   if(GCC_COMPILER_VERSION VERSION_GREATER 4.1) # < 4.2 doesn't know -isystem
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshadow")
   endif()


Add NDEBUG to RelWithDebInfo builds

Add NDEBUG to RelWithDebInfo builds

--- Common.cmake
+++ Common.cmake
@@ -23,10 +23,8 @@
     set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type" FORCE)
   endif()
 endif(NOT CMAKE_BUILD_TYPE)
-if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
-endif()
+set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DNDEBUG")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG")

 set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
 string(TOUPPER ${CMAKE_PROJECT_NAME} UPPER_PROJECT_NAME)


switch detection from nuget OpenSSL dynamic to nuget rmt_openssl (static)

--- cmake/FindOpenSSL.cmake
+++ cmake/FindOpenSSL.cmake
@@ -73,12 +73,18 @@
 if (WIN32)
   # 32-bit not officially supported anymore anyway
   set(SSL_BITS "x64")
+  set(SSL_NUGET_TARGET "Release/target") # there also is Debug if you want to...
   # v140 corresponds to VS 2015
-  set(SSL_NUGET_DIR "lib/native/v140/windesktop/msvcstl/dyn/rt-dyn")
-  set(SSL_NUGET_ROOT "$ENV{USERPROFILE}/.nuget/packages/openssl.v140.windesktop.msvcstl.dyn.rt-dyn.${SSL_BITS}")
+  # dynamic dll openssl looks like that...
+  #set(SSL_NUGET_DIR "lib/native/v140/windesktop/msvcstl/dyn/rt-dyn")
+  #set(SSL_NUGET_ROOT "$ENV{USERPROFILE}/.nuget/packages/openssl.v140.windesktop.msvcstl.dyn.rt-dyn.${SSL_BITS}")
+
+  set(SSL_NUGET_DIR "lib/v140/")
+  set(SSL_NUGET_ROOT "$ENV{USERPROFILE}/.nuget/packages/rmt_openssl/")
   if (NOT OPENSSL_ROOT_DIR AND IS_DIRECTORY ${SSL_NUGET_ROOT})
     # find latest version based on folder name and assign to OPENSSL_ROOT_DIR
     FILE(GLOB dirlist RELATIVE ${SSL_NUGET_ROOT} ${SSL_NUGET_ROOT}/*)
+
     list(SORT dirlist)
     list(LENGTH dirlist listlength)
     math(EXPR lastindex "${listlength}-1")
@@ -98,12 +104,12 @@
     set(OPENSSL_INCLUDE "${OPENSSL_ROOT_DIR}/build/native/include")
     set(_OPENSSL_ROOT_HINTS "${OPENSSL_ROOT_DIR}/build/native/include")

-    set(OPENSSL_LIB_DIR "${OPENSSL_ROOT_DIR}/${SSL_NUGET_DIR}/${SSL_BITS}")
+    set(OPENSSL_LIB_DIR "${OPENSSL_ROOT_DIR}/build/native/${SSL_NUGET_DIR}/${SSL_BITS}")
     set(_OPENSSL_ROOT_HINTS "${OPENSSL_ROOT_DIR}/build/native/include")

     set(_OPENSSL_ROOT_PATHS
       "${OPENSSL_ROOT_DIR}/build/native/include"
-      "${OPENSSL_ROOT_DIR}/${SSL_NUGET_DIR}/${SSL_BITS}/")
+      "${OPENSSL_ROOT_DIR}/build/native/${SSL_NUGET_DIR}/")
   else()
     # http://www.slproweb.com/products/Win32OpenSSL.html
     set(_OPENSSL_ROOT_HINTS
@@ -171,23 +177,24 @@
     #endif ()

     set(LIB_EAY_DEBUG LIB_EAY_DEBUG-NOTFOUND)
-    if (EXISTS "${OPENSSL_LIB_DIR}/debug/libeay32.lib")
-      set(LIB_EAY_DEBUG "${OPENSSL_LIB_DIR}/debug/libeay32.lib")
+
+    if (EXISTS "${OPENSSL_LIB_DIR}/Debug/static/libeay32.lib")
+      set(LIB_EAY_DEBUG "${OPENSSL_LIB_DIR}/Debug/static/libeay32.lib")
     endif()

     set(LIB_EAY_RELEASE LIB_EAY_RELEASE-NOTFOUND)
-    if (EXISTS "${OPENSSL_LIB_DIR}/release/libeay32.lib")
-      set(LIB_EAY_RELEASE "${OPENSSL_LIB_DIR}/release/libeay32.lib")
+    if (EXISTS "${OPENSSL_LIB_DIR}/Release/static/libeay32.lib")
+      set(LIB_EAY_RELEASE "${OPENSSL_LIB_DIR}/Release/static/libeay32.lib")
     endif()

     set(SSL_EAY_DEBUG SSL_EAY_DEBUG-NOTFOUND)
-    if (EXISTS "${OPENSSL_LIB_DIR}/debug/ssleay32.lib")
-      set(SSL_EAY_DEBUG "${OPENSSL_LIB_DIR}/debug/ssleay32.lib")
+    if (EXISTS "${OPENSSL_LIB_DIR}/Debug/static/ssleay32.lib")
+      set(SSL_EAY_DEBUG "${OPENSSL_LIB_DIR}/Debug/static/ssleay32.lib")
     endif()

     set(SSL_EAY_RELEASE SSL_EAY_RELEASE-NOTFOUND)
-    if (EXISTS "${OPENSSL_LIB_DIR}/release/ssleay32.lib")
-      set(SSL_EAY_RELEASE "${OPENSSL_LIB_DIR}/release/ssleay32.lib")
+    if (EXISTS "${OPENSSL_LIB_DIR}/Release/static/ssleay32.lib")
+      set(SSL_EAY_RELEASE "${OPENSSL_LIB_DIR}/Release/static/ssleay32.lib")
     endif()

     set(LIB_EAY_LIBRARY_DEBUG "${LIB_EAY_DEBUG}")


cmake: enable CMAKE_COLOR_DIAGNOSTICS by default

Related to https://github.com/espressif/esp-idf/issues/4162

Setting this option informs CMake that it should pass
-fcolor-diagnostics flag to the compiler.

(Colorized build system output, like from GNU Make, is produced even
without this flag.)

Note that if the build is done using Ninja and the build output is
redirected (not a TTY), Ninja will still strip the escape codes from
the output. For the case of idf.py, this is handled in the next
commit.

--- tools/cmake/project.cmake
+++ tools/cmake/project.cmake
@@ -344,6 +344,12 @@
     # Generate compile_commands.json (needs to come after project call).
     set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

+    # If CMAKE_COLOR_DIAGNOSTICS not set in project CMakeLists.txt or in the environment,
+    # enable it by default.
+    if(NOT DEFINED CMAKE_COLOR_DIAGNOSTICS AND NOT DEFINED ENV{CMAKE_COLOR_DIAGNOSTICS})
+        set(CMAKE_COLOR_DIAGNOSTICS ON)
+    endif()
+
     # Since components can import third-party libraries, the original definition of project() should be restored
     # before the call to add components to the build.
     function(project)


[numerics] fix STRING CONCAT cmake bug

[numerics] fix STRING CONCAT cmake bug

--- numerics/numerics_tests.cmake
+++ numerics/numerics_tests.cmake
@@ -257,13 +257,14 @@
   NEW_TEST(FC3D_sparse_test fc3d_sparse_test.c)

   STRING(CONCAT FC3D_DATA_SET "Capsules-i100-1090.dat;Capsules-i100-889.dat;Capsules-i101-404.dat;Capsules-i103-990.dat;Capsules-i122-1617.dat;")
-  STRING(CONCAT FC3D_DATA_SET "FC3D_Example1.dat;FC3D_Example1_SBM.dat;FrictionContact3D_1c.dat;FrictionContact3D_RR_1c.dat;")
-  STRING(CONCAT FC3D_DATA_SET "NESpheres_10_1.dat;NESpheres_30_1.dat;")
-  STRING(CONCAT FC3D_DATA_SET "Rover1039.dat;Rover1040.dat;Rover1041.dat;Rover11035.dat;Rover11211.dat;Rover3865.dat;Rover4144.dat;")
-  STRING(CONCAT FC3D_DATA_SET "Rover4493.dat;Rover4516.dat;Rover4609.dat;Rover4613.dat;Rover4622.dat;Rover9770.dat;")
-  STRING(CONCAT FC3D_DATA_SET "Confeti-ex13-Fc3D-SBM.dat;")
+  STRING(CONCAT FC3D_DATA_SET "FC3D_Example1.dat;FC3D_Example1_SBM.dat;FrictionContact3D_1c.dat;FrictionContact3D_RR_1c.dat;" "${FC3D_DATA_SET}")
+  STRING(CONCAT FC3D_DATA_SET "NESpheres_10_1.dat;NESpheres_30_1.dat;" "${FC3D_DATA_SET}")
+  STRING(CONCAT FC3D_DATA_SET "Rover1039.dat;Rover1040.dat;Rover1041.dat;Rover11035.dat;Rover11211.dat;Rover3865.dat;Rover4144.dat;" "${FC3D_DATA_SET}")
+  STRING(CONCAT FC3D_DATA_SET "Rover4493.dat;Rover4516.dat;Rover4609.dat;Rover4613.dat;Rover4622.dat;Rover9770.dat;" "${FC3D_DATA_SET}")
+  STRING(CONCAT FC3D_DATA_SET "Confeti-ex13-Fc3D-SBM.dat;" "${FC3D_DATA_SET}")

   foreach(_DAT ${FC3D_DATA_SET})
+    MESSAGE(STATUS "Setting test for ${_DAT}")
     # --- GAMS Solvers ---
     if(HAVE_GAMS_C_API)
       NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_GAMS_PATH)
@@ -283,10 +284,21 @@

     NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSGS 1e-5 10000
       SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnConeWithLocalIteration 1e-12  10)
+
+    NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSGS 1e-5 10000
+      SICONOS_FRICTION_3D_ONECONTACT_NSN_GP 0 0
+      INTERNAL_IPARAM SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_PLI_FALLBACK)
+
+    NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSGS 1e-5 10000
+      SICONOS_FRICTION_3D_ONECONTACT_NSN_GP 0 0
+      INTERNAL_IPARAM SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_NSN_AND_PLI_NSN_LOOP)
+

     NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSGS 1e-5 10000
       SICONOS_FRICTION_3D_ONECONTACT_NSN_GP 0 0
       INTERNAL_IPARAM SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_PLI_NSN_LOOP)
+
+

     # --- Nonsmooth Newton on FC3D_DATA_SET ---
     NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSN_AC 1e-5 1000
@@ -300,8 +312,16 @@
     NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSN_FB 1e-3 1000)
     NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSN_NM 1e-3 1000)
   endforeach()
-
-
+  SET(fc3d__NSN_AC_TEST_Tol_1e-5_Max_1000_inTol_0_inMax_0_IPARAM_1_Capsules-i100-1090_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-3_Max_1000_inTol_0_inMax_0_Capsules-i100-1090_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-5_Max_1000_inTol_0_inMax_0_IPARAM_1_Capsules-i100-889_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-3_Max_1000_inTol_0_inMax_0_Capsules-i100-889_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-5_Max_1000_inTol_0_inMax_0_IPARAM_1_Capsules-i101-404_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-3_Max_1000_inTol_0_inMax_0_Capsules-i101-404_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-5_Max_1000_inTol_0_inMax_0_IPARAM_1_Capsules-i103-990_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-3_Max_1000_inTol_0_inMax_0_Capsules-i103-990_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-5_Max_1000_inTol_0_inMax_0_IPARAM_1_Capsules-i122-1617_PROPERTIES WILL_FAIL TRUE)
+  SET(fc3d__NSN_AC_TEST_Tol_1e-3_Max_1000_inTol_0_inMax_0_Capsules-i122-1617_PROPERTIES WILL_FAIL TRUE)

   # --- NSGS with different local solvers and parameters ---
   NEW_FC_3D_TEST(FC3D_Example1_SBM.dat


[nuemrics] remove 2D data file from fc3D test and add SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY tests

--- numerics/numerics_tests.cmake
+++ numerics/numerics_tests.cmake
@@ -241,7 +241,7 @@
   NEW_TEST(FC3D_sparse_test fc3d_sparse_test.c)

   SET(FC3D_DATA_SET
-    "Capsules-i100-1090.dat;Capsules-i100-889.dat;Capsules-i101-404.dat;Capsules-i103-990.dat;Capsules-i122-1617.dat;Example1_Fc3D.dat;Example1_Fc3D_SBM.dat;FrictionContact3D_1c.dat;FrictionContact3D_RR_1c.dat;NESpheres_10_1.dat;NESpheres_30_1.dat;OneObject-i100000-499.hdf5.dat;Rover1039.dat;Rover1040.dat;Rover1041.dat;Rover11035.dat;Rover11211.dat;Rover3865.dat;Rover4144.dat;Rover4396.dat;Rover4493.dat;Rover4516.dat;Rover4609.dat;Rover4613.dat;Rover4622.dat;Rover9770.dat;KaplasTower-i1061-4.hdf5.dat;Confeti-ex13-Fc3D-SBM.dat;BoxesStack1-i100000-32.hdf5.dat;FrictionContactProblem00237.dat;FrictionContactProblem00727.dat")
+    "Capsules-i100-1090.dat;Capsules-i100-889.dat;Capsules-i101-404.dat;Capsules-i103-990.dat;Capsules-i122-1617.dat;Example1_Fc3D.dat;Example1_Fc3D_SBM.dat;FrictionContact3D_1c.dat;FrictionContact3D_RR_1c.dat;NESpheres_10_1.dat;NESpheres_30_1.dat;OneObject-i100000-499.hdf5.dat;Rover1039.dat;Rover1040.dat;Rover1041.dat;Rover11035.dat;Rover11211.dat;Rover3865.dat;Rover4144.dat;Rover4396.dat;Rover4493.dat;Rover4516.dat;Rover4609.dat;Rover4613.dat;Rover4622.dat;Rover9770.dat;KaplasTower-i1061-4.hdf5.dat;Confeti-ex13-Fc3D-SBM.dat;BoxesStack1-i100000-32.hdf5.dat")

   foreach(_DAT ${FC3D_DATA_SET})
     # --- GAMS Solvers ---
@@ -259,7 +259,10 @@
     NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSGS 1e-5 10000
       SICONOS_FRICTION_3D_ONECONTACT_NSN_GP 0 0
       INTERNAL_IPARAM 10 1)
-
+    NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSGS 1e-5 10000
+      SICONOS_FRICTION_3D_ONECONTACT_NSN_GP 0 0
+      INTERNAL_IPARAM SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_PLI_NSN_LOOP)
+
     # --- Nonsmooth Newton on FC3D_DATA_SET ---
     NEW_FC_3D_TEST(${_DAT} SICONOS_FRICTION_3D_NSN_AC 1e-5 100
       0 0 0


Update CMakeMacro.cmake for clang

Update CMakeMacro.cmake for clang

--- modules/CMakeMacro.cmake
+++ modules/CMakeMacro.cmake
@@ -47,8 +47,12 @@
 	add_library(${the_target} SHARED ${lib_srcs} ${ext_lib_srcs})
 	add_library(${the_target_static} STATIC ${lib_srcs} ${ext_lib_srcs})

+
 	set(BUILD_FLAGS "")
 	if(CMAKE_COMPILER_IS_GNUCXX)
+		set(BUILD_FLAGS "${BUILD_FLAGS} -std=c++0x -Wall -Werror -g")
+	endif()
+	if(CMAKE_CXX_COMPILER MATCHES ".*clang\\+\\+.*")
 		set(BUILD_FLAGS "${BUILD_FLAGS} -std=c++0x -Wall -Werror -g")
 	endif()

@@ -89,6 +93,9 @@
 	if(CMAKE_COMPILER_IS_GNUCXX)
 		set(BUILD_FLAGS "${BUILD_FLAGS} -std=c++0x -Wall -Werror -fpermissive -g")
 	endif()
+	if(CMAKE_CXX_COMPILER MATCHES ".*clang\\+\\+.*")
+		set(BUILD_FLAGS "${BUILD_FLAGS} -std=c++0x -Wall -Werror -g")
+	endif()

 	set_source_files_properties(
 		SOURCE ${test_srcs} PROPERTES COMPILE_FLAGS ${BUILD_FLAGS})


modules: find outdated header names.

modules: find outdated header names.

Changed most of them to names which shouldn't change in the future.

--- modules/FindMagnum.cmake
+++ modules/FindMagnum.cmake
@@ -224,7 +224,7 @@

     # DebugTools library
     if(${component} STREQUAL DebugTools)
-        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Profiler.h)
+        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES DebugTools.h)
     endif()

     # Mesh tools library
@@ -234,7 +234,7 @@

     # Physics library
     if(${component} STREQUAL Physics)
-        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES AbstractShape.h)
+        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Physics.h)
     endif()

     # Primitives library
@@ -244,17 +244,17 @@

     # Scene graph library
     if(${component} STREQUAL SceneGraph)
-        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Scene.h)
+        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES SceneGraph.h)
     endif()

     # Shaders library
     if(${component} STREQUAL Shaders)
-        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES PhongShader.h)
+        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Shaders.h)
     endif()

     # Text library
     if(${component} STREQUAL Text)
-        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES AbstractFont.h)
+        set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Text.h)
     endif()

     # TextureTools library


[cmake] allow configuring `OPENTHREAD_CONFIG_MLE_MAX_CHILDREN` with a CMake option (#8216)

This can help us configure this value during build time for OTBR
projects or other projects using CMake.

--- etc/cmake/options.cmake
+++ etc/cmake/options.cmake
@@ -146,6 +146,14 @@
     target_compile_definitions(ot-config INTERFACE "OPENTHREAD_CONFIG_LOG_PREPEND_LEVEL=1")
 endif()

+set(OT_MLE_MAX_CHILDREN "" CACHE STRING "set maximum number of children")
+if(OT_MLE_MAX_CHILDREN MATCHES "^[0-9]+$")
+    message(STATUS "OT_MLE_MAX_CHILDREN=${OT_MLE_MAX_CHILDREN}")
+    target_compile_definitions(ot-config INTERFACE "OPENTHREAD_CONFIG_MLE_MAX_CHILDREN=${OT_MLE_MAX_CHILDREN}")
+elseif(NOT OT_MLE_MAX_CHILDREN STREQUAL "")
+    message(FATAL_ERROR "Invalid maximum number of children: ${OT_MLE_MAX_CHILDREN}")
+endif()
+
 set(OT_RCP_RESTORATION_MAX_COUNT "0" CACHE STRING "set max RCP restoration count")
 if(OT_RCP_RESTORATION_MAX_COUNT MATCHES "^[0-9]+$")
     message(STATUS "OT_RCP_RESTORATION_MAX_COUNT=${OT_RCP_RESTORATION_MAX_COUNT}")


SUPERBUILD: update gdal to 2.2.0

SUPERBUILD: update gdal to 2.2.0

--- SuperBuild/CMake/External_gdal.cmake
+++ SuperBuild/CMake/External_gdal.cmake
@@ -133,8 +133,8 @@

 ExternalProject_Add(GDAL
   PREFIX GDAL
-  URL "http://download.osgeo.org/gdal/2.1.0/gdal-2.1.0.tar.gz"
-  URL_MD5 0fc165cd947c54b132204233dfb243f1
+  URL "http://download.osgeo.org/gdal/2.2.0/gdal-2.2.0.tar.gz"
+  URL_MD5 37d98d32d6ab0b2d7026a6089c3d17ba
   SOURCE_DIR ${GDAL_SB_SRC}
   BINARY_DIR ${GDAL_SB_SRC}
   INSTALL_DIR ${SB_INSTALL_PREFIX}


STYLE: fix indention

STYLE: fix indention

--- SuperBuild/CMake/External_glfw.cmake
+++ SuperBuild/CMake/External_glfw.cmake
@@ -1,36 +1,34 @@
-if(NOT __EXTERNAL_GLFW__)
-set(__EXTERNAL_GLFW__ 1)
+if(NOT __EXTERNAL_GLFW__w)
+  set(__EXTERNAL_GLFW__ 1)

-if(USE_SYSTEM_GLFW)
-  message(STATUS "  Using glfw system version")
-else()
-  set(GLFW_DEPENDENCIES)
-  set(GLFW_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/GLFW/build)
-  set(GLFW_SB_SRC ${CMAKE_BINARY_DIR}/GLFW/src/GLFW)
+  if(USE_SYSTEM_GLFW)
+    message(STATUS "  Using GLFW system version")
+  else()
+    SETUP_SUPERBUILD(PROJECT GLFW)
+    message(STATUS "  Using GLFW SuperBuild version")

-  ExternalProject_Add(GLFW
-    PREFIX GLFW
-    URL "https://github.com/glfw/glfw/releases/download/3.1.2/glfw-3.1.2.zip"
-    URL_MD5 8023327bfe979b3fe735e449e2f54842
-    BINARY_DIR ${GLFW_SB_BUILD_DIR}
-    INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
+    ExternalProject_Add(GLFW
+      PREFIX GLFW
+      URL "https://github.com/glfw/glfw/releases/download/3.1.2/glfw-3.1.2.zip"
+      URL_MD5 8023327bfe979b3fe735e449e2f54842
+      BINARY_DIR ${GLFW_SB_BUILD_DIR}
+      INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
       DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
-    CMAKE_CACHE_ARGS
+      CMAKE_CACHE_ARGS
       -DCMAKE_BUILD_TYPE:STRING=Release
       -DBUILD_SHARED_LIBS:BOOL=ON
       -DGLFW_BUILD_EXAMPLES:BOOL=OFF
       -DGLFW_BUILD_DOCS:BOOL=OFF
       -DGLFW_BUILD_TESTS:BOOL=OFF
       -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-  )
+      )

-  set(_SB_GLFW_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include)
-  if(WIN32)
-    set(_SB_GLFW_LIBRARY ${SB_INSTALL_PREFIX}/lib/libglfw.lib)
-  elseif(UNIX)
-    set(_SB_GLFW_LIBRARY ${SB_INSTALL_PREFIX}/lib/libglfw${CMAKE_SHARED_LIBRARY_SUFFIX})
+    set(_SB_GLFW_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include)
+    if(WIN32)
+      set(_SB_GLFW_LIBRARY ${SB_INSTALL_PREFIX}/lib/libglfw.lib)
+    elseif(UNIX)
+      set(_SB_GLFW_LIBRARY ${SB_INSTALL_PREFIX}/lib/libglfw${CMAKE_SHARED_LIBRARY_SUFFIX})
+    endif()
+
   endif()
-
-  message(STATUS "  Using glfw SuperBuild version")
 endif()
-endif()


update compiler check to match AppleClang

--- rmw/cmake/configure_rmw_library.cmake
+++ rmw/cmake/configure_rmw_library.cmake
@@ -37,7 +37,7 @@
 #
 macro(configure_rmw_library library_target)
   # Set the visibility to hidden by default if possible
-  if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+  if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
     # Set the visibility of symbols to hidden by default for gcc and clang
     # (this is already the default on Windows)
     set_target_properties(${library_target}


Took out boost linking... only headers are needed now

--- CMakeModules/KlamptDependencies.cmake
+++ CMakeModules/KlamptDependencies.cmake
@@ -23,7 +23,7 @@
   SET(Boost_USE_STATIC_LIBS ON)
   SET(Boost_USE_MULTITHREADED ON)
   SET(Boost_USE_STATIC_RUNTIME OFF)
-  FIND_PACKAGE(Boost REQUIRED COMPONENTS thread system)
+  FIND_PACKAGE(Boost REQUIRED )

   include(FindPackageHandleStandardArgs)
   FIND_PATH(KRISLIBRARY_INCLUDE_DIR KrisLibrary/myfile.h
@@ -107,11 +107,9 @@
     MESSAGE("TinyXML not found!")
   endif( )

-  SET(KLAMPT_LIBRARIES debug ${KRISLIBRARY_LIBRARY_DEBUG} optimized ${KRISLIBRARY_LIBRARY_RELEASE} debug ${ODE_LIBRARY_DEBUG} optimized ${ODE_LIBRARY_RELEASE} ${GLPK_LIBRARY} debug ${GLUI_LIBRARY_DEBUG} optimized ${GLUI_LIBRARY_RELEASE} debug ${TINYXML_LIBRARY_DEBUG} optimized ${TINYXML_LIBRARY_RELEASE} ${KRISLIBRARY_ROOT}/glut32.lib opengl32 Ws2_32 winmm Gdiplus ${Boost_LIBRARIES})
+  SET(KLAMPT_LIBRARIES debug ${KRISLIBRARY_LIBRARY_DEBUG} optimized ${KRISLIBRARY_LIBRARY_RELEASE} debug ${ODE_LIBRARY_DEBUG} optimized ${ODE_LIBRARY_RELEASE} ${GLPK_LIBRARY} debug ${GLUI_LIBRARY_DEBUG} optimized ${GLUI_LIBRARY_RELEASE} debug ${TINYXML_LIBRARY_DEBUG} optimized ${TINYXML_LIBRARY_RELEASE} ${KRISLIBRARY_ROOT}/glut32.lib opengl32 Ws2_32 winmm Gdiplus)
   SET(KLAMPT_INCLUDE_DIRS ${KRISLIBRARY_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${ODE_INCLUDE_DIR} ${GLPK_INCLUDE_DIR} ${GLUI_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR})
-  #Boost should be included as a lib directory
-  LINK_DIRECTORIES(${Boost_LIBRARY_DIR})
-
+
   #GL Extension Wrangler package (GLEW)
   SET(GLEW_INCLUDE_DIR ${KRISLIBRARY_ROOT}/glew-2.0.0/include CACHE PATH "GLEW include directory" FORCE)
   SET(GLEW_LIB ${KRISLIBRARY_ROOT}/glew32.lib CACHE PATH "GLEW library" FORCE)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 04)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   01)
+SET(KWSYS_DATE_STAMP_DAY   02)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 11)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   20)
+SET(KWSYS_DATE_STAMP_DAY   21)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 09)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   16)
+SET(KWSYS_DATE_STAMP_DAY   17)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 02)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   09)
+SET(KWSYS_DATE_STAMP_DAY   10)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 10)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   30)
+SET(KWSYS_DATE_STAMP_DAY   31)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 02)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   23)
+SET(KWSYS_DATE_STAMP_DAY   24)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 06)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   19)
+SET(KWSYS_DATE_STAMP_DAY   20)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 07)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   23)
+SET(KWSYS_DATE_STAMP_DAY   24)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 12)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   02)
+SET(KWSYS_DATE_STAMP_DAY   03)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 09)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   22)
+SET(KWSYS_DATE_STAMP_DAY   23)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 06)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   15)
+SET(KWSYS_DATE_STAMP_DAY   16)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 04)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   06)
+SET(KWSYS_DATE_STAMP_DAY   07)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 10)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   06)
+SET(KWSYS_DATE_STAMP_DAY   07)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 02)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   11)
+SET(KWSYS_DATE_STAMP_DAY   12)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 12)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   28)
+SET(KWSYS_DATE_STAMP_DAY   29)


* Don't bother with lists of excluded headers as they're more trouble than
  they're worth.

svn path=/trunk/KDE/kdebindings/smoke/; revision=822154

--- okular/generate.pl.cmake
+++ okular/generate.pl.cmake
@@ -48,32 +48,6 @@
 # Need to cd to kalyptus's directory so that perl finds Ast.pm etc.
 chdir "$kalyptusdir" or die "Couldn't go to $kalyptusdir (edit script to change dir)\n";

-# Find out which header files we need to parse
-# We don't want all of them - e.g. not template-based stuff
-my %excludes = (
-#   These headers don't look suitable for inclusion:
-	'kallocator.h' => 1,
-	'kbookmarkimporter_crash.h' => 1,
-	'kbookmarkimporter_ie.h' => 1,
-	'kbookmarkimporter_opera.h' => 1,
-	'kbookmarkimporter_ns.h' => 1,
-	'kcrash.h' => 1,
-	'kdebug.h' => 1,
-	'kde_terminal_interface.h' => 1,
-
-#	These headers currently give problems
-	'kio/uiserver.h' => 1,
-	'kio/thumbcreator.h' => 1,
-	'kio/file.h' => 1,
-	'kio/chmodjob.h' => 1,
-	'kparts/genericfactory.h' => 1,
-	'kopenssl.h' => 1,
-	'kautomount.h' => 1,
-	'kimagefilepreview.h' => 1,
-	'kpropertiesdialog.h' => 1,
-	'knotifydialog.h' => 1,
-);
-
 # Some systems have a QTDIR = KDEDIR = PREFIX
 # We need a complete list

@@ -95,7 +69,7 @@
 map { chomp ; $kdeincludes{$_} = 1 unless /^\s*#/ } <HEADERS>;
 close HEADERS;

-# List Qt headers, and exclude the ones listed above
+# List Qt headers
 my @headers = ();

 @qtinc= '@qt_includes@';
@@ -104,8 +78,7 @@
     {   wanted => sub {
 	    (-e || -l and !-d) and do {
 	        $f = $_;
-                if( !defined $excludes{$f} # Not excluded
-                     && $includes{$f}        # Known header
+                if( $includes{$f}        # Known header
                      && /\.h$/)     # Not a backup file etc. Only headers.
                 {
                     my $header = $File::Find::name;
@@ -144,8 +117,7 @@
 	    (-e || -l and !-d) and do {
 	        $f = substr($_, 1 + length $kdeinc);
                 push ( @kdeheaders, $_ )
-	    	  if( !defined $kdeexcludes{$f} # Not excluded
-	    	     && $kdeincludes{$f}        # Known header
+	    	  if( $kdeincludes{$f}        # Known header
 	    	     && /\.h$/);     # Not a backup file etc. Only headers.
 	    	undef $kdeincludes{$f}
 	     };


Fixed the include dir.

Fixed the include dir.

--- Source/CMake/Modules/FindBCM_VC.cmake
+++ Source/CMake/Modules/FindBCM_VC.cmake
@@ -42,7 +42,7 @@
     find_library (BCM_VC_LIB_GLES2 GLESv2 ${BCM_VC_LIB_SEARCH_PATH})

     if (BCM_VC_INCLUDE_DIR AND BCM_VC_LIB_BCM_HOST AND BCM_VC_LIB_GLES2)
-        set (BCM_VC_INCLUDE_DIR ${BCM_VC_INCLUDE_DIR}/interface/vcos/pthreads)
+        set (BCM_VC_INCLUDE_DIR ${BCM_VC_INCLUDE_DIR} ${BCM_VC_INCLUDE_DIR}/interface/vcos/pthreads)
         set (BCM_VC_LIBRARIES ${BCM_VC_LIB_BCM_HOST} ${BCM_VC_LIB_GLES2})
         set (BCM_VC_FOUND 1)
     endif ()


Fixed header guards

Fixed header guards

--- ios-9-3-arm64-bitcode.cmake
+++ ios-9-3-arm64-bitcode.cmake
@@ -1,10 +1,10 @@
-# Copyright (c) 2015, Tomas Zemaitis
+# Copyright (c) 2018, Tomas Zemaitis
 # All rights reserved.

-if(DEFINED POLLY_IOS_9_3_BITCODE_CMAKE_)
+if(DEFINED POLLY_IOS_9_3_ARM64_BITCODE_CMAKE_)
   return()
 else()
-  set(POLLY_IOS_9_3_BITCODE_CMAKE_ 1)
+  set(POLLY_IOS_9_3_ARM64_BITCODE_CMAKE_ 1)
 endif()

 include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_clear_environment_variables.cmake")


[changed] includes to list

[changed] includes to list

--- src/t123/cmake/AddFortranTest.cmake
+++ src/t123/cmake/AddFortranTest.cmake
@@ -26,10 +26,10 @@

   # Then we need to run the C preprocessor on it.
   # The ADD_FORTRAN_TEST_INCLUDE_DIR is set in Testing123/src/CMakeLists.txt!
-  SET( includes "" )
+  SET(includes )
   IF( ADD_FORTRAN_TEST_INCLUDE_DIR )
     STRING(STRIP ${ADD_FORTRAN_TEST_INCLUDE_DIR} ADD_FORTRAN_TEST_INCLUDE_DIR)
-    SET(includes -I${ADD_FORTRAN_TEST_INCLUDE_DIR} )
+    LIST(APPEND includes "-I${ADD_FORTRAN_TEST_INCLUDE_DIR}" )
   ENDIF()
   # Add locals.
   GET_PROPERTY( dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES )


added VTK_EXECUTABLE and improved search for VTK_DATA_PATH

--- vtkCMakeOptions.cmake
+++ vtkCMakeOptions.cmake
@@ -50,6 +50,11 @@
   ENDIF (TCL_INCLUDE_PATH)
   FIND_FILE(VTK_WRAP_HINTS hints ${VTK_SOURCE_DIR}/Wrapping )
   UTILITY_SOURCE(VTK_WRAP_TCL_EXE vtkWrapTcl Wrapping vtkWrapTcl.c)
+  IF (EXECUTABLE_OUTPUT_PATH)
+    SET (VTK_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/vtk)
+  ELSE (EXECUTABLE_OUTPUT_PATH)
+    SET (VTK_EXECUTABLE ${VTK_BINARY_DIR}/Wrapping/Tcl/vtk)
+  ENDIF (EXECUTABLE_OUTPUT_PATH)
 ENDIF (VTK_WRAP_TCL)

 #
@@ -167,5 +172,5 @@
 #
 # try to find the data files for VTKData
 #
-FIND_PATH(VTK_DATA_ROOT ReadMe.txt ${VTK_SOURCE_DIR}/../VTKData)
+FIND_PATH(VTK_DATA_ROOT VTKData.readme ${VTK_SOURCE_DIR}/../VTKData)


Make build dependent on version of xcode, not version of OSX for DARWIN

--- indra/cmake/Variables.cmake
+++ indra/cmake/Variables.cmake
@@ -100,19 +100,19 @@
   set(DARWIN 1)

   execute_process(
-	COMMAND sh -c "sw_vers -productVersion | cut -d'.' -f1-2"
-	OUTPUT_VARIABLE DARWIN_VERSION )
+	COMMAND sh -c "xcodebuild -version | grep Xcode  | cut -d ' ' -f2 | cut -d'.' -f1-2"
+	OUTPUT_VARIABLE XCODE_VERSION )

   # To support a different SDK update these Xcode settings:
-  if (DARWIN_VERSION GREATER 10.6)
+  if (XCODE_VERSION GREATER 4.2)
   	set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6)
 	set(CMAKE_OSX_SYSROOT macosx10.6)
 	set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
-  else (DARWIN_VERSION GREATER 10.6)
+  else (XCODE_VERSION GREATER 4.2)
   	set(CMAKE_OSX_DEPLOYMENT_TARGET 10.5)
     set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
   	set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.0")
-  endif (DARWIN_VERSION GREATER 10.6)
+  endif (XCODE_VERSION GREATER 4.2)

   set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)


modules: updated FindSDL2.cmake.

modules: updated FindSDL2.cmake.

--- modules/FindSDL2.cmake
+++ modules/FindSDL2.cmake
@@ -43,14 +43,19 @@
 if(CORRADE_TARGET_EMSCRIPTEN)
     set(_SDL2_PATH_SUFFIXES SDL)
 else()
+    # Precompiled libraries for Windows are in x86/x64 subdirectories
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+        set(_SDL_LIBRARY_PATH_SUFFIX lib/x64)
+    elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+        set(_SDL_LIBRARY_PATH_SUFFIX lib/x86)
+    endif()
+
     find_library(SDL2_LIBRARY
         # Compiling SDL2 from scratch on OSX creates dead libSDL2.so symlink
         # which CMake somehow prefers before the SDL2-2.0.dylib file. Making
         # the dylib first so it is preferred.
         NAMES SDL2-2.0 SDL2
-
-        # Precompiled libraries for Windows are in x86/x64 subdirectories
-        PATH_SUFFIXES lib/x86 lib/x64)
+        PATH_SUFFIXES ${_SDL_LIBRARY_PATH_SUFFIX})
     set(SDL2_LIBRARY_NEEDED SDL2_LIBRARY)
     set(_SDL2_PATH_SUFFIXES SDL2)
 endif()


revision.cmake: RELEASE_BRANCH fix

revision.cmake: RELEASE_BRANCH fix

issue https://github.com/smanders/externpro/issues/233#issuecomment-626778715

--- modules/revision.cmake
+++ modules/revision.cmake
@@ -23,7 +23,7 @@
 if(GIT_FOUND AND EXISTS "${xpSourceDir}/.git")
   # xpRelBranch (release branch): date yyyymmdd-gitdescribe (20120518-gitdescribe)
   # other branches: user-branch-gitdescribe (smanders-padawan-gitdescribe)
-  execute_process(COMMAND ${GIT_EXECUTABLE} name-rev --name-only HEAD
+  execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
     WORKING_DIRECTORY ${xpSourceDir}
     OUTPUT_VARIABLE refsBranchName
     OUTPUT_STRIP_TRAILING_WHITESPACE


Prefer using LLVM_PREFIX if available to find clang and llvm-link programs (#298)

--- cmake/BCCompiler.cmake
+++ cmake/BCCompiler.cmake
@@ -28,20 +28,39 @@
   set(LLVM_INSTALL_PREFIX $ENV{LLVM_INSTALL_PREFIX})
 endif()

-if("${CMAKE_CXX_COMPILER}" STREQUAL "${CLANG_CXX_EXECUTABLE_NAME}")
-  set(CLANG_PATH "${CMAKE_CXX_COMPILER}")
-
-else()
+if (DEFINED LLVM_INSTALL_PREFIX)
+  message(STATUS "LLVM bin dir: ${LLVM_INSTALL_PREFIX}/bin")
+  # clang path
   find_program(CLANG_PATH
     NAMES "${CLANG_CXX_EXECUTABLE_NAME}"
+    HINTS "${LLVM_INSTALL_PREFIX}/bin"
+    NO_DEFAULT_PATH
+  )
+
+  # llvm-link path
+  find_program(LLVMLINK_PATH
+    NAMES "${LLVMLINK_EXECUTABLE_NAME}"
+    HINTS "${LLVM_INSTALL_PREFIX}/bin"
+    NO_DEFAULT_PATH
+  )
+else()
+  # clang path
+  if("${CMAKE_CXX_COMPILER}" STREQUAL "${CLANG_CXX_EXECUTABLE_NAME}")
+    set(CLANG_PATH "${CMAKE_CXX_COMPILER}")
+
+  else()
+    find_program(CLANG_PATH
+      NAMES "${CLANG_CXX_EXECUTABLE_NAME}"
+      PATHS "/usr/bin" "/usr/local/bin" "${LLVM_INSTALL_PREFIX}/bin" "${LLVM_TOOLS_BINARY_DIR}" "C:/Program Files/LLVM/bin" "C:/Program Files (x86)/LLVM/bin"
+    )
+  endif()
+
+  # llvm-link path
+  find_program(LLVMLINK_PATH
+    NAMES "${LLVMLINK_EXECUTABLE_NAME}"
     PATHS "/usr/bin" "/usr/local/bin" "${LLVM_INSTALL_PREFIX}/bin" "${LLVM_TOOLS_BINARY_DIR}" "C:/Program Files/LLVM/bin" "C:/Program Files (x86)/LLVM/bin"
   )
 endif()
-
-find_program(LLVMLINK_PATH
-  NAMES "${LLVMLINK_EXECUTABLE_NAME}"
-  PATHS "/usr/bin" "/usr/local/bin" "${LLVM_INSTALL_PREFIX}/bin" "${LLVM_TOOLS_BINARY_DIR}" "C:/Program Files/LLVM/bin" "C:/Program Files (x86)/LLVM/bin"
-)

 if((NOT "${CLANG_PATH}" MATCHES "CLANG_PATH-NOTFOUND") AND (NOT "${LLVMLINK_PATH}" MATCHES "LLVMLINK_PATH-NOTFOUND"))
   file(WRITE "${CMAKE_BINARY_DIR}/emitllvm.test.cpp" "int main(int argc, char* argv[]){return 0;}\n\n")


Since Matlab 2015a, the file "license.txt" was renamed "license_agreement.txt".

--- cmake/FindMatlab.cmake
+++ cmake/FindMatlab.cmake
@@ -122,7 +122,8 @@
   # MEX files extension
   IF(APPLE)
     FILE(GLOB MATLAB_PATHS "/Applications/MATLAB_*")
-    FIND_PATH(MATLAB_ROOT "license.txt" ${MATLAB_PATHS} NO_DEFAULT_PATH)
+    FIND_PATH(MATLAB_ROOT NAMES "license.txt" "license_agreement.txt" PATHS ${MATLAB_PATHS} NO_DEFAULT_PATH)
+    MESSAGE(STATUS "MATLAB_ROOT: ${MATLAB_ROOT}")
     IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
       IF(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
         SET(MATLAB_LIBRARIES_PATHS "${MATLAB_ROOT}/bin/mac")


cmake: extensions: add NAME parameter to DT register helpers

Allow register address and size access by name.

Example devicetree fragment:

  / {
          foo@deadbeef {
                  reg = <0xdeadbeef 0x1000>, <0xfeedface 0x2000>;
                  reg-names = "bar", "baz";
          };
  };

Example usage:

  dt_reg_addr(bar_addr PATH "/foo@deadbeef" NAME bar)
  dt_reg_size(bar_size PATH "/foo@deadbeef" NAME bar)

  dt_reg_addr(baz_addr PATH "/foo@deadbeef" NAME baz)
  dt_reg_size(baz_size PATH "/foo@deadbeef" NAME baz)

Results:

  - bar_addr is 0xdeadbeef
  - bar_size is 0x1000
  - baz_addr is 0xfeedface
  - baz_size is 0x2000

Signed-off-by: Martí Bolívar <9d90ac4c7bf6a305f6bfd81a23c7859bc883380e@nordicsemi.no>

--- cmake/extensions.cmake
+++ cmake/extensions.cmake
@@ -2859,10 +2859,11 @@
 endfunction()

 # Usage:
-#   dt_reg_addr(<var> PATH <path> [INDEX <idx>])
-#
-# Get the base address of the register block at index <idx>.
-# If <idx> is omitted, then the value at index 0 will be returned.
+#   dt_reg_addr(<var> PATH <path> [INDEX <idx>] [NAME <name>])
+#
+# Get the base address of the register block at index <idx>, or with
+# name <name>. If <idx> and <name> are both omitted, the value at
+# index 0 will be returned. Do not give both <idx> and <name>.
 #
 # The value will be returned in the <var> parameter.
 #
@@ -2875,14 +2876,15 @@
 # Results can be:
 # - The base address of the register block
 # - <var> will be undefined if node does not exists or does not have a register
-#   block at the requested index.
+#   block at the requested index or with the requested name
 #
 # <var>          : Return variable where the address value will be stored
 # PATH <path>    : Node path
-# INDEX <idx>    : Index number
+# INDEX <idx>    : Register block index number
+# NAME <name>    : Register block name
 function(dt_reg_addr var)
   set(req_single_args "PATH")
-  set(single_args "INDEX")
+  set(single_args "INDEX;NAME")
   cmake_parse_arguments(DT_REG "" "${req_single_args};${single_args}" "" ${ARGN})

   if(${ARGV0} IN_LIST req_single_args)
@@ -2897,8 +2899,16 @@
     endif()
   endforeach()

-  if(NOT DEFINED DT_REG_INDEX)
+  if(DEFINED DT_REG_INDEX AND DEFINED DT_REG_NAME)
+    message(FATAL_ERROR "dt_reg_addr(${ARGV0} ...) given both INDEX and NAME")
+  elseif(NOT DEFINED DT_REG_INDEX AND NOT DEFINED DT_REG_NAME)
     set(DT_REG_INDEX 0)
+  elseif(DEFINED DT_REG_NAME)
+    dt_reg_index_private(DT_REG_INDEX "${DT_REG_PATH}" "${DT_REG_NAME}")
+    if(DT_REG_INDEX EQUAL "-1")
+      set(${var} PARENT_SCOPE)
+      return()
+    endif()
   endif()

   dt_path_internal(canonical "${DT_REG_PATH}")
@@ -2914,10 +2924,11 @@
 endfunction()

 # Usage:
-#   dt_reg_size(<var> PATH <path> [INDEX <idx>])
-#
-# Get the size of the register block at index <idx>.
-# If INDEX is omitted, then the value at index 0 will be returned.
+#   dt_reg_size(<var> PATH <path> [INDEX <idx>] [NAME <name>])
+#
+# Get the size of the register block at index <idx>, or with
+# name <name>. If <idx> and <name> are both omitted, the value at
+# index 0 will be returned. Do not give both <idx> and <name>.
 #
 # The value will be returned in the <value> parameter.
 #
@@ -2929,10 +2940,11 @@
 #
 # <var>          : Return variable where the size value will be stored
 # PATH <path>    : Node path
-# INDEX <idx>    : Index number
+# INDEX <idx>    : Register block index number
+# NAME <name>    : Register block name
 function(dt_reg_size var)
   set(req_single_args "PATH")
-  set(single_args "INDEX")
+  set(single_args "INDEX;NAME")
   cmake_parse_arguments(DT_REG "" "${req_single_args};${single_args}" "" ${ARGN})

   if(${ARGV0} IN_LIST req_single_args)
@@ -2947,8 +2959,16 @@
     endif()
   endforeach()

-  if(NOT DEFINED DT_REG_INDEX)
+  if(DEFINED DT_REG_INDEX AND DEFINED DT_REG_NAME)
+    message(FATAL_ERROR "dt_reg_size(${ARGV0} ...) given both INDEX and NAME")
+  elseif(NOT DEFINED DT_REG_INDEX AND NOT DEFINED DT_REG_NAME)
     set(DT_REG_INDEX 0)
+  elseif(DEFINED DT_REG_NAME)
+    dt_reg_index_private(DT_REG_INDEX "${DT_REG_PATH}" "${DT_REG_NAME}")
+    if(DT_REG_INDEX EQUAL "-1")
+      set(${var} PARENT_SCOPE)
+      return()
+    endif()
   endif()

   dt_path_internal(canonical "${DT_REG_PATH}")
@@ -2961,6 +2981,17 @@
   endif()

   set(${var} ${${var}} PARENT_SCOPE)
+endfunction()
+
+# Internal helper for dt_reg_addr/dt_reg_size; not meant to be used directly
+function(dt_reg_index_private var path name)
+  dt_prop(reg_names PATH "${path}" PROPERTY "reg-names")
+  if(NOT DEFINED reg_names)
+    set(index "-1")
+  else()
+    list(FIND reg_names "${name}" index)
+  endif()
+  set(${var} "${index}" PARENT_SCOPE)
 endfunction()

 # Usage:


build libpng

build libpng

--- cmake/get-libpng.cmake
+++ cmake/get-libpng.cmake
@@ -2,35 +2,60 @@
 # External Project:     libpng
 # Website:              http://www.libpng.org/pub/png/libpng.html
 # Downloads:            ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/lpng1624.zip
+# Github:               https://github.com/glennrp/libpng
 #------------------------------------------------------------------------------

 include(ExternalProject)

 set(LIBPNG_VERSION "1.6.24")

-set(LIBPNG_CMAKE_ARGS
-    ${COMMON_CMAKE_ARGS}
-    -DPNG_SHARED=on
-    -DPNG_STATIC=off
-    -DPNG_TESTS=off
-    -DPNG_DEBUG=off
-    -DPNGARG=off
-    -DBUILD_SHARED_LIBS=FALSE
-    -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}
-    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-    -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-    -DCMAKE_COMPILER_IS_GNUCXX=${CMAKE_COMPILER_IS_GNUCXX}
-    -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-    -DCMAKE_C_FLAGS=${GL_BINDING_C_FLAGS}
-    -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-)
+# For Windows it's faster to download the pre-compiled development binaries.
+if (WIN32)

-ExternalProject_Add(
-  libpng
-  DEPENDS      zlib
-  PREFIX       ${DEPENDENCY_EXTRACT_DIR}
-  INSTALL_DIR  ${DEPENDENCY_INSTALL_DIR}
-  URL          ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/lpng1624.zip
-  #URL_MD5
-  CMAKE_ARGS   ${LIBPNG_CMAKE_ARGS}
-)+  if(MSVC)
+
+    ExternalProject_Add(
+      libpng
+      DEPENDS         zlib
+      PREFIX          ${DEPENDENCY_EXTRACT_DIR}
+      DOWNLOAD_DIR    ${DEPENDENCY_DOWNLOAD_DIR}
+      URL             ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/lpng1624.zip
+      URL_MD5         9572a426a87407f6cfa41f61cbe2e3b2
+      BUILD_COMMAND   "msbuild ${DEPENDENCY_EXTRACT_DIR}/src/libpng/projects/vstudio/vstudio.sln /target:libpng /p:Configuration=Release /p:Platform=Win32 /v:minimal"
+      INSTALL_COMMAND
+        COMMAND ${CMAKE_COMMAND} -E copy "${DEPENDENCY_EXTRACT_DIR}/src/libpng/projects/vstudio/Release Library/libpng16.lib" "${DEPENDENCY_INSTALL_DIR}/lib/libpng16.lib"
+    )
+
+  endif(MSVC)
+
+else() # build from source
+
+  set(LIBPNG_CMAKE_ARGS
+      ${COMMON_CMAKE_ARGS}
+      -DPNG_SHARED=off
+      -DPNG_STATIC=on
+      -DPNG_TESTS=off
+      -DPNG_DEBUG=off
+      -DPNGARG=off
+      -DBUILD_SHARED_LIBS=FALSE
+      -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}
+      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+      -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+      -DCMAKE_COMPILER_IS_GNUCXX=${CMAKE_COMPILER_IS_GNUCXX}
+      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+      -DCMAKE_C_FLAGS=${GL_BINDING_C_FLAGS}
+      -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+  )
+
+  ExternalProject_Add(
+    libpng
+    DEPENDS      zlib
+    PREFIX       ${DEPENDENCY_EXTRACT_DIR}
+    DOWNLOAD_DIR ${DEPENDENCY_DOWNLOAD_DIR}
+    URL          ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/lpng1624.zip
+    URL_MD5      9572a426a87407f6cfa41f61cbe2e3b2
+    INSTALL_DIR  ${DEPENDENCY_INSTALL_DIR}
+    CMAKE_ARGS   ${LIBPNG_CMAKE_ARGS}
+  )
+
+endif()


Simplify the implementation of the qt device logic.

svn path=/trunk/; revision=10183

--- cmake/modules/qt.cmake
+++ cmake/modules/qt.cmake
@@ -59,16 +59,6 @@
     message(STATUS "WARNING: no working C++ compiler so "
       "disabling all qt devices."
       )
-    set(PLD_bmpqt OFF CACHE BOOL "Enable Qt Windows bmp device" FORCE)
-    set(PLD_jpgqt OFF CACHE BOOL "Enable Qt jpg device" FORCE)
-    set(PLD_pngqt OFF CACHE BOOL "Enable Qt png device" FORCE)
-    set(PLD_ppmqt OFF CACHE BOOL "Enable Qt ppm device" FORCE)
-    set(PLD_tiffqt OFF CACHE BOOL "Enable Qt tiff device" FORCE)
-    set(PLD_epsqt OFF CACHE BOOL "Enable Qt EPS device" FORCE)
-    set(PLD_pdfqt OFF CACHE BOOL "Enable Qt PDF device" FORCE)
-    set(PLD_qtwidget OFF CACHE BOOL "Enable Qt interactive device" FORCE)
-    set(PLD_svgqt OFF CACHE BOOL "Enable Qt SVG device" FORCE)
-    set(PLD_extqt OFF CACHE BOOL "Enable Qt ext device" FORCE)
     set(ANY_QT_DEVICE OFF)
   endif(NOT CMAKE_CXX_COMPILER_WORKS)
 endif(ANY_QT_DEVICE)
@@ -95,6 +85,11 @@
     #message("qt_LIBRARY_DIR = ${qt_LIBRARY_DIR}")
   else(QT4_FOUND AND QT_LIBRARIES)
     message(STATUS "QT_LIBRARIES not found so disabling all qt devices")
+    set(ANY_QT_DEVICE OFF)
+  endif(QT4_FOUND AND QT_LIBRARIES)
+endif(ANY_QT_DEVICE)
+
+if(NOT ANY_QT_DEVICE)
     set(PLD_bmpqt OFF CACHE BOOL "Enable Qt Windows bmp device" FORCE)
     set(PLD_jpgqt OFF CACHE BOOL "Enable Qt jpg device" FORCE)
     set(PLD_pngqt OFF CACHE BOOL "Enable Qt png device" FORCE)
@@ -105,8 +100,7 @@
     set(PLD_qtwidget OFF CACHE BOOL "Enable Qt interactive device" FORCE)
     set(PLD_svgqt OFF CACHE BOOL "Enable Qt SVG device" FORCE)
     set(PLD_extqt OFF CACHE BOOL "Enable Qt ext device" FORCE)
-  endif(QT4_FOUND AND QT_LIBRARIES)
-endif(ANY_QT_DEVICE)
+endif(NOT ANY_QT_DEVICE)

 if(DEFAULT_NO_BINDINGS)
   option(ENABLE_qt "Enable Qt bindings" OFF)
@@ -206,4 +200,3 @@
   # COMMAND will work properly with these flags later on.
   string(REGEX REPLACE " " ";"PYQT_SIP_FLAGS "${PYQT_SIP_FLAGS}")
 endif(ENABLE_pyqt4)
-


roboschool use opencv to read texture images

--- cmake/roboschool.cmake
+++ cmake/roboschool.cmake
@@ -73,7 +73,7 @@
   GIT_REPOSITORY "https://github.com/skylian/roboschool"
   GIT_TAG "remove_qt"
   SOURCE_DIR ${ROBOSCHOOL_DIR}
-  DEPENDS assimp bullet glm
+  DEPENDS assimp bullet glm opencv
   LOG_DOWNLOAD ON
   BUILD_COMMAND ""
   INSTALL_COMMAND ""
@@ -81,8 +81,8 @@
 )

 ## make roboschool
-set(ROBOSCHOOL_INCLUDE_DEPS ${ASSIMP_INCLUDE_PATH} ${GLM_INCLUDE_PATH} ${BULLET_INCLUDE_PATHS})
-set(ROBOSCHOOL_LIB_DEPS ${ASSIMP_LIBRARIES} ${BULLET_LIBRARIES})
+set(ROBOSCHOOL_INCLUDE_DEPS ${ASSIMP_INCLUDE_PATH} ${GLM_INCLUDE_PATH} ${BULLET_INCLUDE_PATHS} ${OPENCV_INCLUDE_PATH})
+set(ROBOSCHOOL_LIB_DEPS ${ASSIMP_LIBRARIES} ${BULLET_LIBRARIES} ${OPENCV_LIBS})

 ## custom make
 add_custom_command(TARGET roboschool POST_BUILD


Complete CPACK_DEBIAN_PACKAGE_REPLACES and CPACK_RPM_PACKAGE_OBSOLETES.

--- packaging/linux/LinuxPackaging.cmake
+++ packaging/linux/LinuxPackaging.cmake
@@ -51,13 +51,12 @@
 if(${DISTRIBUTOR_ID} MATCHES fc|fedora|Fedora|Centos|centos|SUSE|Suse|suse)
   set(CPACK_GENERATOR RPM)
   set(CPACK_RPM_PACKAGE_REQUIRES "qt, qtwebkit")
-  set(CPACK_RPM_PACKAGE_OBSOLETES medinria-all)
+  set(CPACK_RPM_PACKAGE_OBSOLETES "medinria-all, dcmtk-inria, itk-inria-build, medinria, medinria-plugins, medinria-plugins-asclepios, medinria-visages-plugins, vtk-inria-build")
 else()
   set(CPACK_GENERATOR DEB)
   set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt4-sql-sqlite, libqt4-webkit")
-  set(CPACK_DEBIAN_PACKAGE_REPLACES medinria-all)
+  set(CPACK_DEBIAN_PACKAGE_REPLACES "medinria-all, dcmtk-inria, itk-inria-build, medinria, medinria-plugins, medinria-plugins-asclepios, medinria-visages-plugins, vtk-inria-build")
 endif()
-
 set(CPACK_GENERATOR "${CPACK_GENERATOR}" CACHE STRING "Type of package to build")
 mark_as_advanced(CPACK_GENERATOR)


pw_build: Extend CMake's pw_add_test function

Updates pw_add_test to use the same consistent arguments from
pw_add_library. The previous arguments are still temporarily
permitted in order to enable migration.

In addition, support for automatic test runners is added in a way
which is backwards compatible, i.e. is enabled by default.

Change-Id: I17e4cd321a100c1a162316724a532b3b841ed9e5
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/116362
Pigweed-Auto-Submit: Ewout van Bekkum <638f134dbc68778d6b859fb04a64baea2b00b021@google.com>
Commit-Queue: Ewout van Bekkum <638f134dbc68778d6b859fb04a64baea2b00b021@google.com>
Reviewed-by: Wyatt Hepler <cca3bedb37979eacd157a9bceb473582df8aea1e@google.com>

--- pw_build/pigweed.cmake
+++ pw_build/pigweed.cmake
@@ -644,59 +644,130 @@
      is used. You could, for example, point this at pw_third_party.googletest \
      if using upstream GoogleTest directly on your host for GoogleMock.")

-# Declares a unit test. Creates two targets:
-#
-#  * <TEST_NAME> - the test executable
-#  * <TEST_NAME>.run - builds and runs the test
-#
-# Args:
-#
-#   NAME: name to use for the target
-#   SOURCES: source files for this test
-#   DEPS: libraries on which this test depends
-#   DEFINES: defines to set for the source files in this test
-#   GROUPS: groups to which to add this test; if none are specified, the test is
+# TODO(ewout): Remove the default to match GN and support Windows.
+set(pw_unit_test_AUTOMATIC_RUNNER "$ENV{PW_ROOT}/targets/host/run_test" CACHE
+    STRING
+    "Path to a test runner to automatically run unit tests after they are \
+     built. \
+     If set, a pw_add_test's {NAME}.run action will invoke the test runner \
+     specified by this variable, passing the path to the unit test to run. If \
+     set to an empty string, the {NAME}.run step will fail to build.")
+
+set(pw_unit_test_AUTOMATIC_RUNNER_TIMEOUT_SECONDS "" CACHE STRING
+    "Optional timeout to apply when running tests via the automatic runner. \
+     Timeout is in seconds. Defaults to empty which means no timeout.")
+
+set(pw_unit_test_AUTOMATIC_RUNNER_ARGS "" CACHE STRING
+    "Optional arguments to forward to the automatic runner")
+
+# Using pw_add_test, it creates the following targets:
+#
+#   {NAME}.lib contains the provided test sources as a library target, which can
+#              then be linked into a test executable.
+#   {NAME} is a standalone executable which contains only the test sources
+#          specified in the pw_unit_test_template.
+#   {NAME}.run which runs the unit test executable after building it if
+#              pw_unit_test_AUTOMATIC_RUNNER is set, else it fails to build.
+#
+# Required Args:
+#
+#   NAME: name to use for the produced test targets specified above
+#
+# Optional Args:
+#
+#   SOURCES - source files for this library
+#   HEADERS - header files for this library
+#   PRIVATE_DEPS - private pw_target_link_targets arguments
+#   PRIVATE_INCLUDES - public target_include_directories argument
+#   PRIVATE_DEFINES - private target_compile_definitions arguments
+#   PRIVATE_COMPILE_OPTIONS - private target_compile_options arguments
+#   PRIVATE_LINK_OPTIONS - private target_link_options arguments
+#
+#  TODO(ewout, hepler): Deprecate the following legacy arguments
+#   DEPS - alias to PRIVATE_DEPS
+#   DEFINES - alias to PRIVATE_DEFINES
+#   GROUPS - groups to which to add this test; if none are specified, the test is
 #       added to the 'default' and 'all' groups
 #
 function(pw_add_test NAME)
-  pw_parse_arguments_strict(pw_add_test 1 "" "" "SOURCES;DEPS;DEFINES;GROUPS")
-
-  add_executable("${NAME}" EXCLUDE_FROM_ALL ${arg_SOURCES})
-  # TODO(ewout, hepler): Consider changing this to pw_target_link_targets once
-  # pw_auto_add_module_tests has been deprecated which relies on generator
-  # expressions.
-  target_link_libraries("${NAME}"
-    PRIVATE
+  set(num_positional_args 1)
+  set(option_args)
+  set(one_value_args)
+  set(multi_value_args SOURCES HEADERS PRIVATE_DEPS PRIVATE_INCLUDES
+                       PRIVATE_DEFINES PRIVATE_COMPILE_OPTIONS
+                       PRIVATE_LINK_OPTIONS
+                       DEPS DEFINES GROUPS)
+  pw_parse_arguments_strict(
+      pw_add_test "${num_positional_args}" "${option_args}" "${one_value_args}"
+      "${multi_value_args}")
+
+  # OBJECT libraries require at least one source file.
+  if(NOT arg_SOURCES)
+    set(arg_SOURCES $<TARGET_PROPERTY:pw_build.empty,SOURCES>)
+  endif()
+  pw_add_library("${NAME}.lib" OBJECT
+    SOURCES
+      ${arg_SOURCES}
+    HEADERS
+      ${arg_HEADERS}
+    PRIVATE_DEPS
       pw_unit_test
       ${pw_unit_test_MAIN}
-      ${arg_DEPS}
-  )
-  target_compile_definitions("${NAME}"
-    PRIVATE
+      ${arg_PRIVATE_DEPS}
+    PRIVATE_INCLUDES
+      ${arg_PRIVATE_INCLUDES}
+    PRIVATE_DEFINES
       ${arg_DEFINES}
-  )
-
-  # Tests require at least one source file.
-  if(NOT arg_SOURCES)
-    target_sources("${NAME}" PRIVATE $<TARGET_PROPERTY:pw_build.empty,SOURCES>)
-  endif()
-
-  # Define a target for running the test. The target creates a stamp file to
-  # indicate successful test completion. This allows running tests in parallel
-  # with Ninja's full dependency resolution.
-  add_custom_command(
-    COMMAND
-      # TODO(hepler): This only runs local test binaries. Execute a test runner
-      #     instead to support device test runs.
-      "$<TARGET_FILE:${NAME}>"
-    COMMAND
-      "${CMAKE_COMMAND}" -E touch "${NAME}.stamp"
-    DEPENDS
-      "${NAME}"
-    OUTPUT
-      "${NAME}.stamp"
-  )
-  add_custom_target("${NAME}.run" DEPENDS "${NAME}.stamp")
+      ${arg_PRIVATE_DEFINES}
+    PRIVATE_COMPILE_OPTIONS
+      ${arg_PRIVATE_COMPILE_OPTIONS}
+    PRIVATE_LINK_OPTIONS
+      ${arg_PRIVATE_LINK_OPTIONS}
+  )
+  # TODO(ewout, hepler): Move this above once pw_auto_add_module_tests has
+  # been deprecated which relies on generator expressions (i.e. aren't targets).
+  target_link_libraries("${NAME}.lib" PRIVATE ${arg_DEPS})
+
+  # TODO(ewout, hepler): Enable the use of pw_unit_test_EXECUTABLE_TARGET_TYPE &
+  # pw_unit_test_EXECUTABLE_TARGET_TYPE_FILE for stamping out unit test
+  # executables where we only pass the name and the lib target as args.
+  add_executable("${NAME}" EXCLUDE_FROM_ALL)
+  target_link_libraries("${NAME}" PRIVATE "${NAME}.lib")
+
+  if("${pw_unit_test_AUTOMATIC_RUNNER}" STREQUAL "")
+    pw_add_error_target("${NAME}.run"
+      MESSAGE
+        "Attempted to build ${NAME}.run which is not available because "
+        "pw_unit_test_AUTOMATIC_RUNNER has not been configured. "
+        "See https://pigweed.dev/pw_unit_test."
+    )
+  else()
+    # Define a target for running the test. The target creates a stamp file to
+    # indicate successful test completion. This allows running tests in parallel
+    # with Ninja's full dependency resolution.
+    if(NOT "${pw_unit_test_AUTOMATIC_RUNNER_TIMEOUT_SECONDS}" STREQUAL "")
+      set(optional_timeout_arg
+          "--timeout ${pw_unit_test_AUTOMATIC_RUNNER_TIMEOUT_SECONDS}")
+    endif()
+    if(NOT "${pw_unit_test_AUTOMATIC_RUNNER_ARGS}" STREQUAL "")
+      set(optional_runner_args "-- ${pw_unit_test_AUTOMATIC_RUNNER_ARGS}")
+    endif()
+    add_custom_command(
+      COMMAND
+        python3 -m pw_unit_test.test_runner
+        --runner "${pw_unit_test_AUTOMATIC_RUNNER}"
+        --test "$<TARGET_FILE:${NAME}>"
+        ${optional_timeout_arg}
+        ${optional_runner_args}
+      COMMAND
+        "${CMAKE_COMMAND}" -E touch "${NAME}.stamp"
+      DEPENDS
+        "${NAME}"
+      OUTPUT
+        "${NAME}.stamp"
+    )
+    add_custom_target("${NAME}.run" DEPENDS "${NAME}.stamp")
+  endif()

   # Always add tests to the "all" group. If no groups are provided, add the
   # test to the "default" group.


ENH: CI: PKG: stop main_packages.cmake if error when configuring.

--- CI/main_packages.cmake
+++ CI/main_packages.cmake
@@ -80,7 +80,7 @@
 if( NOT _configure_rv EQUAL 0 )
   ctest_submit()
   message( SEND_ERROR "An error occurs during ctest_configure.")
-  # return()
+  return()
 endif()


[UPD] FindOctave: Octave built with MSVC 2010 does not have the prefix "lib" for its libraries (octinterp, octave, and cruft).

--- CMake/FindOctave.cmake
+++ CMake/FindOctave.cmake
@@ -75,9 +75,15 @@
   ENDIF (NOT OCTAVE_LIBRARIES_PATHS)

   # LIBOCTINTERP, LIBOCTAVE, LIBCRUFT names
-  SET(LIBOCTINTERP "liboctinterp")
-  SET(LIBOCTAVE "liboctave")
-  SET(LIBCRUFT "libcruft")
+  IF(OCTAVE_USE_MINGW32)
+    SET(LIBOCTINTERP "liboctinterp")
+    SET(LIBOCTAVE "liboctave")
+    SET(LIBCRUFT "libcruft")
+  ELSE(OCTAVE_USE_MINGW32)
+    SET(LIBOCTINTERP "octinterp")
+    SET(LIBOCTAVE "octave")
+    SET(LIBCRUFT "cruft")
+  ENDIF(OCTAVE_USE_MINGW32)

 ELSE(WIN32)
   IF(APPLE)


QuotientConfig.cmake: fix another typo

QuotientConfig.cmake: fix another typo

...to fix building tests _with_ E2EE by CMake.

--- cmake/QuotientConfig.cmake
+++ cmake/QuotientConfig.cmake
@@ -1,6 +1,6 @@
 include(CMakeFindDependencyMacro)

-if (Quotient_E2EE_ENABLED)
+if (Quotient_ENABLE_E2EE)
     find_dependency(QtOlm)
 endif()
 include("${CMAKE_CURRENT_LIST_DIR}/QuotientTargets.cmake")


Protection against double -l (#998)

Protection against double -l (#998)

--- cmake/catkin_package.cmake
+++ cmake/catkin_package.cmake
@@ -270,7 +270,9 @@
   catkin_filter_libraries_for_build_configuration(libraries ${PKG_CONFIG_LIBRARIES})
   foreach(library ${libraries})
     if(NOT IS_ABSOLUTE ${library})
-      set(library "-l${library}")
+      if(NOT ${library} MATCHES "^-l")
+        set(library "-l${library}")
+      endif()
     endif()
     list_append_deduplicate(PKG_CONFIG_LIBRARIES_WITH_PREFIX ${library})
   endforeach()


After-fix for WL#1213 Fixing cmake files.

--- cmake/character_sets.cmake
+++ cmake/character_sets.cmake
@@ -22,15 +22,15 @@
 SET(DEFAULT_COLLATION "latin1_swedish_ci")
 ENDIF()

-SET(CHARSETS ${DEFAULT_CHARSET} latin1 utf8 utf8mb3)
-SET(CHARSETS_COMPLEX big5 cp1250 cp932 eucjpms euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8 utf8mb3 utf16 utf32)
+SET(CHARSETS ${DEFAULT_CHARSET} latin1 utf8 utf8mb4)
+SET(CHARSETS_COMPLEX big5 cp1250 cp932 eucjpms euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8 utf8mb4 utf16 utf32)

 SET(CHARSETS_AVAILABLE
 binary armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257
 cp850 cp852 cp866 cp932 dec8 eucjpms euckr gb2312 gbk geostd8
 greek hebrew hp8 keybcs2 koi8r koi8u
 latin1 latin2 latin5 latin7 macce macroman
-sjis swe7 tis620 ucs2 ujis utf8 utf8mb3 utf16 utf32)
+sjis swe7 tis620 ucs2 ujis utf8 utf8mb4 utf16 utf32)

 SET (EXTRA_CHARSETS "all")