BUG: Slicer requires SVN for processing modules.

--- MicroTumorWindows1_Amazon_TubeTK_Slicer.cmake
+++ MicroTumorWindows1_Amazon_TubeTK_Slicer.cmake
@@ -1,244 +1,249 @@
-##############################################################################
-#
-# Library:   TubeTK
-#
-# Copyright 2010 Kitware Inc. 28 Corporate Drive,
-# Clifton Park, NY, 12065, USA.
-#
-# All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-#
-##############################################################################
-
-# Follow format for caps and components as given on TubeTK dashboard
-set( SITE_NAME "MicroTumorWindows1.Amazon.Slicer" )
-# Follow format for caps and components as given on TubeTK dashboard
-set( SITE_PLATFORM "WindowServer2012R2-VS2013Exp-64" )
-
-if( NOT SITE_BUILD_TYPE )
-  set( SITE_BUILD_TYPE "Release" ) # Release, Debug
-endif( NOT SITE_BUILD_TYPE )
-
-if( NOT SITE_CTEST_MODE )
-  set( SITE_CTEST_MODE "Nightly" ) # Experimental, Continuous, or Nightly
-endif( NOT SITE_CTEST_MODE )
-
-set( SITE_CMAKE_GENERATOR "Visual Studio 12 2013 Win64" )
-
-set( TubeTK_GIT_REPOSITORY "https://github.com/KitwareMedical/TubeTK.git" )
-
-set( TubeTK_SOURCE_DIR "C:/src/dashboards/TubeTK-Slicer" )
-set( TubeTK_BINARY_DIR "C:/src/dashboards/TubeTK-Slicer-${SITE_BUILD_TYPE}" )
-
-#
-# To work with Slicer and ITK, TubeTK must be built with shared libs
-#
-set( BUILD_SHARED_LIBS ON )
-
-#
-# Machine-specific variables
-#
-set( SITE_MAKE_COMMAND "${CTEST_BUILD_COMMAND}" )
-
-set( SITE_CMAKE_COMMAND "C:/Program Files/CMake/bin/cmake" )
-set( SITE_CTEST_COMMAND "C:/Program Files/CMake/bin/ctest" )
-
-set( SITE_QMAKE_COMMAND "C:/src/qt-4.8.7-64-vs2013-rel/bin/qmake" )
-
-set( SITE_COVERAGE_COMMAND "" )
-set( SITE_MEMORYCHECK_COMMAND "" )
-
-set( SITE_GIT_COMMAND "C:/Program Files/Git/cmd/git.exe" )
-set( SITE_SVN_COMMAND "C:/Program Files/SlikSvn/bin/svn.exe" )
-
-#
-# The following libraries are not handled by Superbuild.
-#   If you wan tto use them, they must already be installed on your system.
-#
-set( TubeTK_BUILD_USING_SLICER ON )
-#if TubeTK_BUILD_USING_SLICER is ON, you need to fix the following line
-set( Slicer_DIR "C:/src/Slicer-SuperBuild-Release/Slicer-build" )
-
-set( TubeTK_USE_BOOST OFF )
-#if TubeTK_USE_BOOST is ON, you need to fix the following line
-#set( BOOST_ROOT "/usr/local" )
-
-set( TubeTK_USE_GPU_ARRAYFIRE OFF )
-#if TubeTK_USE_GPU_ARRAYFIRE is ON, you need to fix the following line
-#set( ArrayFire_DIR "/usr/local" )
-
-#
-# The following will be built using Superbuild, unless otherwise specified
-#
-set( USE_SYSTEM_CPPCHECK OFF )
-#set( Cppcheck_DIR "" )
-
-set( USE_SYSTEM_JSONCPP OFF )
-#set( JSoncpp_DIR "" )
-
-set( USE_SYSTEM_KWSTYLE OFF )
-#set( KWStyle_DIR "" )
-
-set( USE_SYSTEM_LIBSVM OFF )
-#set( LIBSVM_DIR "" )
-
-#
-# The default is to superbuild ITK, VTK, CTK, and SEM, unless Slicer is used.
-#
-if( TubeTK_BUILD_USING_SLICER )
-  set( USE_SYSTEM_CTK ON )
-  set( USE_SYSTEM_ITK ON )
-  set( USE_SYSTEM_SlicerExecutionModel ON )
-  set( USE_SYSTEM_VTK ON )
-else( TubeTK_BUILD_USING_SLICER )
-  #
-  # the following will be built using Superbuild, unless otherwise specified
-  #
-  set( USE_SYSTEM_CTK OFF )
-  #set( CTK_DIR "" )
-  set( USE_SYSTEM_ITK OFF )
-  #set( ITK_DIR "" )
-  set( USE_SYSTEM_SLICER_EXECUTION_MODEL OFF )
-  #set( SlicerExecutionModel_DIR "" )
-  set( USE_SYSTEM_VTK OFF )
-  #set( VTK_DIR "" )
-endif( TubeTK_BUILD_USING_SLICER )
-
-#
-#  Define common build settings
-#
-set( TubeTK_BUILD_APPLICATIONS ON )
-set( TubeTK_BUILD_IMAGE_VIEWER ON )
-set( TubeTK_USE_CTK ON )
-set( TubeTK_USE_EXAMPLES_AS_TESTS OFF )
-set( TubeTK_USE_IPYTHON_NOTEBOOKS ON )
-set( TubeTK_USE_LIBSVM ON )
-set( TubeTK_USE_NUMPY ON )
-set( TubeTK_USE_PYQTGRAPH ON )
-set( TubeTK_USE_PYTHON ON )
-set( TubeTK_USE_QT ON )
-set( TubeTK_USE_VALGRIND OFF )
-set( TubeTK_USE_VTK ON )
-set( TubeTK_TEST_ENVIRONMENT ON)
-
-#
-# Configure what is run on this machine for experimental, continuous, and
-#   nightly builds
-#
-set( SITE_EXPERIMENTAL_BUILD ON )
-set( SITE_EXPERIMENTAL_TEST ON )
-set( SITE_EXPERIMENTAL_CPPCHECK ON )
-set( SITE_EXPERIMENTAL_KWSTYLE ON )
-set( SITE_EXPERIMENTAL_COVERAGE OFF )
-set( SITE_EXPERIMENTAL_MEMORY OFF )
-set( SITE_EXPERIMENTAL_BUILD_DOCUMENTATION OFF )
-set( SITE_EXPERIMENTAL_PACKAGE OFF )
-set( SITE_EXPERIMENTAL_UPLOAD OFF )
-
-set( SITE_CONTINUOUS_BUILD ON )
-set( SITE_CONTINUOUS_TEST ON )
-set( SITE_CONTINUOUS_CPPCHECK ON )
-set( SITE_CONTINUOUS_KWSTYLE ON )
-set( SITE_CONTINUOUS_COVERAGE OFF )
-set( SITE_CONTINUOUS_MEMORY OFF )
-set( SITE_CONTINUOUS_BUILD_DOCUMENTATION OFF )
-set( SITE_CONTINUOUS_PACKAGE OFF )
-set( SITE_CONTINUOUS_UPLOAD OFF )
-
-set( SITE_NIGHTLY_BUILD ON )
-set( SITE_NIGHTLY_TEST ON )
-set( SITE_NIGHTLY_CPPCHECK ON )
-set( SITE_NIGHTLY_KWSTYLE ON )
-set( SITE_NIGHTLY_COVERAGE OFF )
-set( SITE_NIGHTLY_MEMORY OFF )
-set( SITE_NIGHTLY_BUILD_DOCUMENTATION OFF )
-set( SITE_NIGHTLY_PACKAGE OFF )
-set( SITE_NIGHTLY_UPLOAD OFF )
-
-##############################################################################
-# The following advanced variables should only be changed by experts.
-##############################################################################
-
-set( TubeTK_SCRIPT_DIR "${CTEST_SCRIPT_DIRECTORY}" )
-
-set( SITE_BUILD_NAME "${SITE_PLATFORM}-${SITE_BUILD_TYPE}" )
-
-set( SITE_UPDATE_COMMAND "${SITE_GIT_COMMAND}" )
-
-set( SITE_MEMORYCHECK_COMMAND_OPTIONS "" )
-set( SITE_MEMORYCHECK_SUPPRESSIONS_FILE
-  "${TubeTK_SOURCE_DIR}/CMake/Valgrind/TubeTKValgrindSuppressions.txt" )
-
-set( CTEST_SITE "${SITE_NAME}" )
-
-set( CTEST_BUILD_CONFIGURATION "${SITE_BUILD_TYPE}" )
-set( CTEST_CONFIGURATION_TYPE "${SITE_BUILD_TYPE}" )
-set( CTEST_BUILD_COMMAND "${SITE_MAKE_COMMAND}" )
-
-set( CTEST_SOURCE_DIRECTORY "${TubeTK_SOURCE_DIR}" )
-set( CTEST_BINARY_DIRECTORY "${TubeTK_BINARY_DIR}/TubeTK-build" )
-
-set( CTEST_CMAKE_GENERATOR "${SITE_CMAKE_GENERATOR}" )
-
-set( CTEST_CMAKE_COMMAND "${SITE_CMAKE_COMMAND}" )
-set( CTEST_CTEST_COMMAND "${SITE_CTEST_COMMAND}" )
-set( CTEST_UPDATE_COMMAND "${SITE_UPDATE_COMMAND}" )
-set( CTEST_COVERAGE_COMMAND "${SITE_COVERAGE_COMMAND}" )
-set( CTEST_MEMORYCHECK_COMMAND "${SITE_MEMORYCHECK_COMMAND}" )
-set( CTEST_MEMORYCHECK_COMMAND_OPTIONS "${SITE_MEMORYCHECK_COMMAND_OPTIONS}" )
-set( CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
-  "${SITE_MEMORYCHECK_SUPPRESSIONS_FILE}" )
-set( CTEST_COMMAND "${SITE_CTEST_COMMAND}" )
-
-if( SITE_NIGHTLY_MEMORY OR SITE_CONTINUOUS_MEMORY OR SITE_EXPERIMENTAL_MEMORY )
-  set( CTEST_TEST_TIMEOUT 3600 )
-else( SITE_NIGHTLY_MEMORY OR SITE_CONTINUOUS_MEMORY OR SITE_EXPERIMENTAL_MEMORY )
-  set( CTEST_TEST_TIMEOUT 360 )
-endif( SITE_NIGHTLY_MEMORY OR SITE_CONTINUOUS_MEMORY OR SITE_EXPERIMENTAL_MEMORY )
-
-set( SITE_EXECUTABLE_DIRS "${TubeTK_BINARY_DIR}/SlicerExecutionModel-build/ModuleDescriptionParser-build/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/SlicerExecutionModel-build/GenerateCLP-build/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/ITK-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/JsonCpp-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/VTK-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/TubeTK-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/TubeTK-build/lib/TubeTK/${SITE_BUILD_TYPE}" )
-set( ENV{PATH} "${SITE_EXECUTABLE_DIRS};$ENV{PATH}" )
-
-set( SITE_CXX_FLAGS "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GR /MP /EHsc" )
-set( SITE_C_FLAGS "/DWIN32 /D_WINDOWS /W3 /Zm1000 /MP" )
-set( SITE_EXE_LINKER_FLAGS "" )
-set( SITE_SHARED_LINKER_FLAGS "" )
-
-set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SITE_C_FLAGS}" )
-set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SITE_CXX_FLAGS}" )
-set( CMAKE_EXE_LINKER_FLAGS
-  "${CMAKE_EXE_LINKER_FLAGS} ${SITE_EXE_LINKER_FLAGS}" )
-set( CMAKE_SHARED_LINKER_FLAGS
-  "${CMAKE_SHARED_LINKER_FLAGS} ${SITE_SHARED_LINKER_FLAGS}" )
-
-set( GITCOMMAND "${SITE_GIT_COMMAND}" )
-set( GIT_EXECUTABLE "${SITE_GIT_COMMAND}" )
-set( SVNCOMMAND "${SITE_SVN_COMMAND}" )
-set( CMAKE_GENERATOR ${SITE_CMAKE_GENERATOR} )
-set( QT_QMAKE_EXECUTABLE "${SITE_QMAKE_COMMAND}" )
-
-if( NOT EXISTS "${TubeTK_SOURCE_DIR}/CMakeLists.txt" )
-  execute_process( COMMAND
-    "${SITE_GIT_COMMAND}"
-    clone "${TubeTK_GIT_REPOSITORY}" "${TubeTK_SOURCE_DIR}" )
-  ctest_run_script()
-endif( NOT EXISTS "${TubeTK_SOURCE_DIR}/CMakeLists.txt" )
-
-if( "${SITE_CTEST_MODE}" STREQUAL "Experimental" )
-  include( "${TubeTK_SCRIPT_DIR}/run_experimental.cmake" )
-elseif( "${SITE_CTEST_MODE}" STREQUAL "Continuous" )
-  include( "${TubeTK_SCRIPT_DIR}/run_continuous.cmake" )
-elseif( "${SITE_CTEST_MODE}" STREQUAL "Nightly" )
-  include( "${TubeTK_SCRIPT_DIR}/run_nightly.cmake" )
-endif( "${SITE_CTEST_MODE}" STREQUAL "Experimental" )
+##############################################################################
+#
+# Library:   TubeTK
+#
+# Copyright 2010 Kitware Inc. 28 Corporate Drive,
+# Clifton Park, NY, 12065, USA.
+#
+# All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+#
+##############################################################################
+
+# Follow format for caps and components as given on TubeTK dashboard
+set( SITE_NAME "MicroTumorWindows1.Amazon.Slicer" )
+# Follow format for caps and components as given on TubeTK dashboard
+set( SITE_PLATFORM "WindowServer2012R2-VS2013Exp-64" )
+
+if( NOT SITE_BUILD_TYPE )
+  set( SITE_BUILD_TYPE "Release" ) # Release, Debug
+endif( NOT SITE_BUILD_TYPE )
+
+if( NOT SITE_CTEST_MODE )
+  set( SITE_CTEST_MODE "Nightly" ) # Experimental, Continuous, or Nightly
+endif( NOT SITE_CTEST_MODE )
+
+set( SITE_CMAKE_GENERATOR "Visual Studio 12 2013 Win64" )
+
+set( TubeTK_GIT_REPOSITORY "https://github.com/KitwareMedical/TubeTK.git" )
+
+set( TubeTK_SOURCE_DIR "C:/src/dashboards/TubeTK-Slicer" )
+set( TubeTK_BINARY_DIR "C:/src/dashboards/TubeTK-Slicer-${SITE_BUILD_TYPE}" )
+
+#
+# To work with Slicer and ITK, TubeTK must be built with shared libs
+#
+set( BUILD_SHARED_LIBS ON )
+
+#
+# Machine-specific variables
+#
+set( SITE_MAKE_COMMAND "${CTEST_BUILD_COMMAND}" )
+
+set( SITE_CMAKE_COMMAND "C:/Program Files/CMake/bin/cmake" )
+set( SITE_CTEST_COMMAND "C:/Program Files/CMake/bin/ctest" )
+
+set( SITE_QMAKE_COMMAND "C:/src/qt-4.8.7-64-vs2013-rel/bin/qmake" )
+
+set( SITE_COVERAGE_COMMAND "" )
+set( SITE_MEMORYCHECK_COMMAND "" )
+
+set( SITE_GIT_COMMAND "C:/Program Files/Git/cmd/git.exe" )
+
+# SVN is required by Slicer
+set( SITE_SVN_COMMAND "C:/Program Files/SlikSvn/bin/svn.exe" )
+
+#
+# The following libraries are not handled by Superbuild.
+#   If you wan tto use them, they must already be installed on your system.
+#
+set( TubeTK_BUILD_USING_SLICER ON )
+#if TubeTK_BUILD_USING_SLICER is ON, you need to fix the following line
+set( Slicer_DIR "C:/src/Slicer-SuperBuild-Release/Slicer-build" )
+
+set( TubeTK_USE_BOOST OFF )
+#if TubeTK_USE_BOOST is ON, you need to fix the following line
+#set( BOOST_ROOT "/usr/local" )
+
+set( TubeTK_USE_GPU_ARRAYFIRE OFF )
+#if TubeTK_USE_GPU_ARRAYFIRE is ON, you need to fix the following line
+#set( ArrayFire_DIR "/usr/local" )
+
+#
+# The following will be built using Superbuild, unless otherwise specified
+#
+set( USE_SYSTEM_CPPCHECK OFF )
+#set( Cppcheck_DIR "" )
+
+set( USE_SYSTEM_JSONCPP OFF )
+#set( JSoncpp_DIR "" )
+
+set( USE_SYSTEM_KWSTYLE OFF )
+#set( KWStyle_DIR "" )
+
+set( USE_SYSTEM_LIBSVM OFF )
+#set( LIBSVM_DIR "" )
+
+#
+# The default is to superbuild ITK, VTK, CTK, and SEM, unless Slicer is used.
+#
+if( TubeTK_BUILD_USING_SLICER )
+  set( USE_SYSTEM_CTK ON )
+  set( USE_SYSTEM_ITK ON )
+  set( USE_SYSTEM_SlicerExecutionModel ON )
+  set( USE_SYSTEM_VTK ON )
+else( TubeTK_BUILD_USING_SLICER )
+  #
+  # the following will be built using Superbuild, unless otherwise specified
+  #
+  set( USE_SYSTEM_CTK OFF )
+  #set( CTK_DIR "" )
+  set( USE_SYSTEM_ITK OFF )
+  #set( ITK_DIR "" )
+  set( USE_SYSTEM_SLICER_EXECUTION_MODEL OFF )
+  #set( SlicerExecutionModel_DIR "" )
+  set( USE_SYSTEM_VTK OFF )
+  #set( VTK_DIR "" )
+endif( TubeTK_BUILD_USING_SLICER )
+
+#
+#  Define common build settings
+#
+set( TubeTK_BUILD_APPLICATIONS ON )
+set( TubeTK_BUILD_IMAGE_VIEWER ON )
+set( TubeTK_USE_CTK ON )
+set( TubeTK_USE_EXAMPLES_AS_TESTS OFF )
+set( TubeTK_USE_IPYTHON_NOTEBOOKS ON )
+set( TubeTK_USE_LIBSVM ON )
+set( TubeTK_USE_NUMPY ON )
+set( TubeTK_USE_PYQTGRAPH ON )
+set( TubeTK_USE_PYTHON ON )
+set( TubeTK_USE_QT ON )
+set( TubeTK_USE_VALGRIND OFF )
+set( TubeTK_USE_VTK ON )
+set( TubeTK_TEST_ENVIRONMENT ON)
+
+#
+# Configure what is run on this machine for experimental, continuous, and
+#   nightly builds
+#
+set( SITE_EXPERIMENTAL_BUILD ON )
+set( SITE_EXPERIMENTAL_TEST ON )
+set( SITE_EXPERIMENTAL_CPPCHECK ON )
+set( SITE_EXPERIMENTAL_KWSTYLE ON )
+set( SITE_EXPERIMENTAL_COVERAGE OFF )
+set( SITE_EXPERIMENTAL_MEMORY OFF )
+set( SITE_EXPERIMENTAL_BUILD_DOCUMENTATION OFF )
+set( SITE_EXPERIMENTAL_PACKAGE OFF )
+set( SITE_EXPERIMENTAL_UPLOAD OFF )
+
+set( SITE_CONTINUOUS_BUILD ON )
+set( SITE_CONTINUOUS_TEST ON )
+set( SITE_CONTINUOUS_CPPCHECK ON )
+set( SITE_CONTINUOUS_KWSTYLE ON )
+set( SITE_CONTINUOUS_COVERAGE OFF )
+set( SITE_CONTINUOUS_MEMORY OFF )
+set( SITE_CONTINUOUS_BUILD_DOCUMENTATION OFF )
+set( SITE_CONTINUOUS_PACKAGE OFF )
+set( SITE_CONTINUOUS_UPLOAD OFF )
+
+set( SITE_NIGHTLY_BUILD ON )
+set( SITE_NIGHTLY_TEST ON )
+set( SITE_NIGHTLY_CPPCHECK ON )
+set( SITE_NIGHTLY_KWSTYLE ON )
+set( SITE_NIGHTLY_COVERAGE OFF )
+set( SITE_NIGHTLY_MEMORY OFF )
+set( SITE_NIGHTLY_BUILD_DOCUMENTATION OFF )
+set( SITE_NIGHTLY_PACKAGE OFF )
+set( SITE_NIGHTLY_UPLOAD OFF )
+
+##############################################################################
+# The following advanced variables should only be changed by experts.
+##############################################################################
+
+set( TubeTK_SCRIPT_DIR "${CTEST_SCRIPT_DIRECTORY}" )
+
+set( SITE_BUILD_NAME "${SITE_PLATFORM}-${SITE_BUILD_TYPE}" )
+
+set( SITE_UPDATE_COMMAND "${SITE_GIT_COMMAND}" )
+
+set( SITE_MEMORYCHECK_COMMAND_OPTIONS "" )
+set( SITE_MEMORYCHECK_SUPPRESSIONS_FILE
+  "${TubeTK_SOURCE_DIR}/CMake/Valgrind/TubeTKValgrindSuppressions.txt" )
+
+set( CTEST_SITE "${SITE_NAME}" )
+
+set( CTEST_BUILD_CONFIGURATION "${SITE_BUILD_TYPE}" )
+set( CTEST_CONFIGURATION_TYPE "${SITE_BUILD_TYPE}" )
+set( CTEST_BUILD_COMMAND "${SITE_MAKE_COMMAND}" )
+
+set( CTEST_SOURCE_DIRECTORY "${TubeTK_SOURCE_DIR}" )
+set( CTEST_BINARY_DIRECTORY "${TubeTK_BINARY_DIR}/TubeTK-build" )
+
+set( CTEST_CMAKE_GENERATOR "${SITE_CMAKE_GENERATOR}" )
+
+set( CTEST_CMAKE_COMMAND "${SITE_CMAKE_COMMAND}" )
+set( CTEST_CTEST_COMMAND "${SITE_CTEST_COMMAND}" )
+set( CTEST_UPDATE_COMMAND "${SITE_UPDATE_COMMAND}" )
+set( CTEST_COVERAGE_COMMAND "${SITE_COVERAGE_COMMAND}" )
+set( CTEST_MEMORYCHECK_COMMAND "${SITE_MEMORYCHECK_COMMAND}" )
+set( CTEST_MEMORYCHECK_COMMAND_OPTIONS "${SITE_MEMORYCHECK_COMMAND_OPTIONS}" )
+set( CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
+  "${SITE_MEMORYCHECK_SUPPRESSIONS_FILE}" )
+set( CTEST_COMMAND "${SITE_CTEST_COMMAND}" )
+
+if( SITE_NIGHTLY_MEMORY OR SITE_CONTINUOUS_MEMORY OR SITE_EXPERIMENTAL_MEMORY )
+  set( CTEST_TEST_TIMEOUT 3600 )
+else( SITE_NIGHTLY_MEMORY OR SITE_CONTINUOUS_MEMORY OR SITE_EXPERIMENTAL_MEMORY )
+  set( CTEST_TEST_TIMEOUT 360 )
+endif( SITE_NIGHTLY_MEMORY OR SITE_CONTINUOUS_MEMORY OR SITE_EXPERIMENTAL_MEMORY )
+
+set( SITE_EXECUTABLE_DIRS "${TubeTK_BINARY_DIR}/SlicerExecutionModel-build/ModuleDescriptionParser-build/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/SlicerExecutionModel-build/GenerateCLP-build/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/ITK-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/JsonCpp-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/VTK-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/TubeTK-build/bin/${SITE_BUILD_TYPE};${TubeTK_BINARY_DIR}/TubeTK-build/lib/TubeTK/${SITE_BUILD_TYPE}" )
+set( ENV{PATH} "${SITE_EXECUTABLE_DIRS};$ENV{PATH}" )
+
+set( SITE_CXX_FLAGS "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GR /MP /EHsc" )
+set( SITE_C_FLAGS "/DWIN32 /D_WINDOWS /W3 /Zm1000 /MP" )
+set( SITE_EXE_LINKER_FLAGS "" )
+set( SITE_SHARED_LINKER_FLAGS "" )
+
+set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SITE_C_FLAGS}" )
+set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SITE_CXX_FLAGS}" )
+set( CMAKE_EXE_LINKER_FLAGS
+  "${CMAKE_EXE_LINKER_FLAGS} ${SITE_EXE_LINKER_FLAGS}" )
+set( CMAKE_SHARED_LINKER_FLAGS
+  "${CMAKE_SHARED_LINKER_FLAGS} ${SITE_SHARED_LINKER_FLAGS}" )
+
+set( GITCOMMAND "${SITE_GIT_COMMAND}" )
+set( GIT_EXECUTABLE "${SITE_GIT_COMMAND}" )
+set( CMAKE_GENERATOR ${SITE_CMAKE_GENERATOR} )
+set( QT_QMAKE_EXECUTABLE "${SITE_QMAKE_COMMAND}" )
+if( TubeTK_BUILD_USING_SLICER )
+  set( SVNCOMMAND "${SITE_SVN_COMMAND}" )
+  set( Subversion_SVN_EXECUTABLE "${SITE_SVN_COMMAND}" )
+endif( TubeTK_BUILD_USING_SLICER )
+
+if( NOT EXISTS "${TubeTK_SOURCE_DIR}/CMakeLists.txt" )
+  execute_process( COMMAND
+    "${SITE_GIT_COMMAND}"
+    clone "${TubeTK_GIT_REPOSITORY}" "${TubeTK_SOURCE_DIR}" )
+  ctest_run_script()
+endif( NOT EXISTS "${TubeTK_SOURCE_DIR}/CMakeLists.txt" )
+
+if( "${SITE_CTEST_MODE}" STREQUAL "Experimental" )
+  include( "${TubeTK_SCRIPT_DIR}/run_experimental.cmake" )
+elseif( "${SITE_CTEST_MODE}" STREQUAL "Continuous" )
+  include( "${TubeTK_SCRIPT_DIR}/run_continuous.cmake" )
+elseif( "${SITE_CTEST_MODE}" STREQUAL "Nightly" )
+  include( "${TubeTK_SCRIPT_DIR}/run_nightly.cmake" )
+endif( "${SITE_CTEST_MODE}" STREQUAL "Experimental" )


ENH: changed required version of gdal from 1.10 to 2.0

--- Modules/ThirdParty/GDAL/otb-module-init.cmake
+++ Modules/ThirdParty/GDAL/otb-module-init.cmake
@@ -35,8 +35,8 @@
   return()
 endif()

-set(MIN_MAJOR_VERSION 1)
-set(MIN_MINOR_VERSION 10)
+set(MIN_MAJOR_VERSION 2)
+set(MIN_MINOR_VERSION 0)

 # Ensure that the temporary dir always exists before starting tests
 if(NOT EXISTS ${TEMP})


fix cmake summary order

fix cmake summary order

--- cmakemodules/script_show_final_summary.cmake
+++ cmakemodules/script_show_final_summary.cmake
@@ -172,8 +172,8 @@
 if(UNIX)
 SHOW_CONFIG_LINE_SYSTEM("libftdi (USB)                       " CMAKE_MRPT_HAS_FTDI "[Version: ${LIBFTDI_VERSION_STRING}]")
 endif(UNIX)
+SHOW_CONFIG_LINE("MYNTEYE-D SDK                       " CMAKE_MRPT_HAS_MYNTEYE_D)
 message(STATUS " National Instruments...")
-SHOW_CONFIG_LINE("MYNTEYE-D SDK                       " CMAKE_MRPT_HAS_MYNTEYE_D)
 SHOW_CONFIG_LINE("...NIDAQmx?                         " CMAKE_MRPT_HAS_NIDAQMX)
 SHOW_CONFIG_LINE("...NIDAQmx Base?                    " CMAKE_MRPT_HAS_NIDAQMXBASE)
 SHOW_CONFIG_LINE_SYSTEM("NITE2 library                       " CMAKE_MRPT_HAS_NITE2)


python.cmake: Fix syntax of debug config args.

--- python.cmake
+++ python.cmake
@@ -44,7 +44,7 @@
     #  that can be caused by some python extensions (e.g. the python vtk bindings hit those assertions)
     # Of course, if those assertions are hit by code that YOU wrote, then you might
     #  want to change this build command so you can debug WITH pymalloc.
-    set(PYTHON_DEBUG_CONFIG_ARGS "--with-pydebug --without-pymalloc")
+    set(PYTHON_DEBUG_CONFIG_ARGS "--with-pydebug=yes --with-pymalloc=no")
 endif()

 ExternalProject_Add(${python_NAME}


cmake: fix AVX2 setup (wrong flag name)

cmake: fix AVX2 setup (wrong flag name)

classical copy and paste error: the flag name said "xop" instead of
"avx2".

Signed-off-by: Matthias Kretz <372ea4eca737a13cd010ee806d4ce7b98ee71550@kde.org>

--- cmake/OptimizeForArchitecture.cmake
+++ cmake/OptimizeForArchitecture.cmake
@@ -404,7 +404,7 @@
       _enable_or_disable(AVX "avx" "Use AVX. This will all floating-point vector sizes relative to SSE." _avx_broken)
       _enable_or_disable(FMA "fma" "Use FMA." _avx_broken)
       _enable_or_disable(BMI2 "bmi2" "Use BMI2." _avx_broken)
-      _enable_or_disable(AVX2 "xop" "Use AVX2. This will double all of the vector sizes relative to SSE." _avx2_broken)
+      _enable_or_disable(AVX2 "avx2" "Use AVX2. This will double all of the vector sizes relative to SSE." _avx2_broken)
       _enable_or_disable(XOP "xop" "Use XOP." _xop_broken)
       _enable_or_disable(FMA4 "fma4" "Use FMA4." _fma4_broken)
       _enable_or_disable(AVX512F "avx512f" "Use AVX512F. This will double all floating-point vector sizes relative to AVX2." false)


Cleaned up install path module

Cleaned up install path module

--- cmake/modules/SetInstallPaths.cmake
+++ cmake/modules/SetInstallPaths.cmake
@@ -18,18 +18,12 @@
   set(SYSTEM_ROOT_DIR "/")
 endif()

-if(NOT WIN32)
-  set(BINDIR "bin")
-  set(RUNTIME_LIBDIR "${BINDIR}\\${CMAKE_BUILD_TYPE}")
-  set(DATADIR "${BINDIR}\\data")
-else()
-  set(BINDIR ""
-      CACHE STRING "Bin Install Dir")
-  set(RUNTIME_LIBDIR "lib"
-      CACHE STRING "Lib Dir")
-  set(DATADIR ""
-      CACHE STRING "Data Install Dir")
-endif()
+set(BINDIR ""
+    CACHE STRING "Bin Install Dir")
+set(RUNTIME_LIBDIR "lib"
+    CACHE STRING "Lib Dir")
+set(DATADIR ""
+    CACHE STRING "Data Install Dir")

 # set variables used by cmake
 if(IS_ABSOLUTE ${BINDIR})


libxml2: ++PACKAGE_INTERNAL_DEPS_ID

libxml2: ++PACKAGE_INTERNAL_DEPS_ID

--- cmake/projects/libxml2/hunter.cmake
+++ cmake/projects/libxml2/hunter.cmake
@@ -67,6 +67,6 @@

 hunter_download(
     PACKAGE_NAME libxml2
-    PACKAGE_INTERNAL_DEPS_ID "8"
+    PACKAGE_INTERNAL_DEPS_ID "9"
     ${_libxml_unrelocatable_text_files}
 )


Update hunter.cmake

Update hunter.cmake

--- cmake/projects/pugixml/hunter.cmake
+++ cmake/projects/pugixml/hunter.cmake
@@ -5,6 +5,14 @@
 include(hunter_cmake_args)
 include(hunter_download)
 include(hunter_pick_scheme)
+
+
+hunter_add_version(
+    PACKAGE_NAME pugixml
+    VERSION "1.8.1.1"
+    URL "https://github.com/designerror/pugixml/archive/v1.8.1.1.tar.gz"
+    SHA1 2868d91802aa9ec1af1d50423f93740f42cc796f
+)

 hunter_add_version(
     PACKAGE_NAME pugixml


Deactivate unused parameter warnings on MSVC again

--- CMake/mitkFunctionCreateModule.cmake
+++ CMake/mitkFunctionCreateModule.cmake
@@ -344,7 +344,11 @@
     if(NOT MODULE_WARNINGS_NO_ERRORS)
       if(MSVC_VERSION)
         mitkFunctionCheckCAndCXXCompilerFlags("/WX" module_c_flags module_cxx_flags)
-        mitkFunctionCheckCAndCXXCompilerFlags("/w34100" module_c_flags module_cxx_flags)
+	# this would turn on unused parameter warnings, but unfortunately MSVC cannot
+	# distinguish yet between internal and external headers so this would be triggered
+	# a lot by external code. There is support for it on the way so this line could be
+	# reactivated after https://gitlab.kitware.com/cmake/cmake/issues/17904 has been fixed.
+        # mitkFunctionCheckCAndCXXCompilerFlags("/w34100" module_c_flags module_cxx_flags)
       else()
         mitkFunctionCheckCAndCXXCompilerFlags(-Werror module_c_flags module_cxx_flags)


build: bump version to 2.0

build: bump version to 2.0

--- CMake/version.cmake
+++ CMake/version.cmake
@@ -1,3 +1,3 @@
-set (VV_VERSION_MAJOR 1)
-set (VV_VERSION_MINOR 1)
-set (VV_VERSION_PATCH 6)
+set (VV_VERSION_MAJOR 2)
+set (VV_VERSION_MINOR 0)
+set (VV_VERSION_PATCH 0)


If feature is disabled, skip its tests, don't report them broken (#2988)

--- src/cmake/testing.cmake
+++ src/cmake/testing.cmake
@@ -75,13 +75,17 @@
             set (_ats_LABEL "broken")
         endif ()
     endforeach ()
+    set (_test_disabled 0)
     foreach (_var ${_ats_ENABLEVAR})
         if ((NOT "${${_var}}" STREQUAL "" AND NOT "${${_var}}") OR
             (NOT "$ENV{${_var}}" STREQUAL "" AND NOT "$ENV{${_var}}"))
             set (_ats_LABEL "broken")
+            set (_test_disabled 1)
         endif ()
     endforeach ()
-    if (_ats_IMAGEDIR AND NOT EXISTS ${_ats_testdir})
+    if (_test_disabled)
+        message (STATUS "Skipping test(s) ${_ats_UNPARSED_ARGUMENTS} because of disabled ${_ats_ENABLEVAR}")
+    elseif (_ats_IMAGEDIR AND NOT EXISTS ${_ats_testdir})
         # If the directory containing reference data (images) for the test
         # isn't found, point the user at the URL.
         message (STATUS "\n\nDid not find ${_ats_testdir}")


correct ordering in files.cmake

correct ordering in files.cmake

--- Modules/SurfaceInterpolation/files.cmake
+++ Modules/SurfaceInterpolation/files.cmake
@@ -1,7 +1,7 @@
 set(CPP_FILES
   mitkComputeContourSetNormalsFilter.cpp
   mitkCreateDistanceImageFromSurfaceFilter.cpp
+  mitkImageToPointCloudFilter.cpp
   mitkReduceContourSetFilter.cpp
   mitkSurfaceInterpolationController.cpp
-  mitkImageToPointCloudFilter.cpp
 )


android cmake function changes

android cmake function changes

--- cmake/CEGUIAndroid.cmake
+++ cmake/CEGUIAndroid.cmake
@@ -1,3 +1,30 @@
+#/*******************************************************************************
+#    Filename: CEGUIAndroid.cmake
+#    Created:  28/9/2014
+#    Author:   David Reepmeyer <djreep81@gmail.com>
+#*******************************************************************************/
+#/***************************************************************************
+# *   Copyright (C) 2004 - 2013 Paul D Turner & The CEGUI Development Team
+# *
+# *   Permission is hereby granted, free of charge, to any person obtaining
+# *   a copy of this software and associated documentation files (the
+# *   "Software"), to deal in the Software without restriction, including
+# *   without limitation the rights to use, copy, modify, merge, publish,
+# *   distribute, sublicense, and/or sell copies of the Software, and to
+# *   permit persons to whom the Software is furnished to do so, subject to
+# *   the following conditions:
+# *
+# *   The above copyright notice and this permission notice shall be
+# *   included in all copies or substantial portions of the Software.
+# *
+# *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# *   OTHER DEALINGS IN THE SOFTWARE.
+# ***************************************************************************/

 macro(create_android_proj ANDROID_PROJECT_TARGET)
     if (ANDROID)
@@ -31,15 +58,6 @@
         file(WRITE "${NDKOUT}/default.properties" "target=${ANDROID_TARGET}")
         file(WRITE "${NDKOUT}/jni/Application.mk"
             "APP_ABI := ${ANDROID_ABI}\nAPP_STL := gnustl_static\nAPP_CPPFLAGS := -fexceptions -frtti -std=c++11\nNDK_TOOLCHAIN_VERSION := ${ANDROID_COMPILER_VERSION}")
-        message( "checking for gles2 or gles" )
-        if (OGRE_RenderSystem_GLES2_FOUND)
-            message( "gles2 " )
-            add_definitions(-DINCLUDE_RTSHADER_SYSTEM)
-            SET(DEPENDENCIES OgreMain RenderSystem_GLES2)
-        elseif (OGRE_RenderSystem_GLES_FOUND)
-            message( "gles " )
-            SET(DEPENDENCIES OgreMain RenderSystem_GLES)
-        endif()
         SET(ANDROID_MOD_NAME "${CEGUI_TARGET_NAME}")
         SET(JNI_PATH "${CMAKE_SOURCE_DIR}/samples/browser")
         foreach(COMBINED_SOURCE_FILE ${COMBINED_SOURCE_FILES})
@@ -47,22 +65,21 @@
         endforeach()
         SET(JNI_SRC_FILES "${COMBINED_SOURCE_FILES_STRING}")
         SET(PKG_NAME "cegui.org.uk.browser")
-        # Set this variable to false if no java code will be present (google android:hasCode for more info)
         SET(HAS_CODE "false")
         SET(HEADERS "")
         SET(SAMPLE_LDLIBS "")
         SET(ANDROID_SHARED_LIB "${CEGUI_TARGET_NAME}")
         file(COPY "${CMAKE_SOURCE_DIR}/datafiles/imagesets/ic_launcher.png" DESTINATION "${NDKOUT}/res/drawable")
         file(COPY "${CMAKE_SOURCE_DIR}/datafiles" DESTINATION "${NDKOUT}/assets")
-        #file(COPY "${CMAKE_BINARY_DIR}/datafiles/samples/samples.xml" DESTINATION
-        #    "${NDKOUT}/assets/samples/samples.xml")
+        configure_file("${OGRE_TEMPLATES_DIR}/Android_resources.cfg.in" "${NDKOUT}/assets/resources.cfg" @ONLY)
+        if (CEGUI_SAMPLES_RENDERER_OGRE_ACTIVE)
+            SET(ANDROID_GLES_VERSION "0x00020000")
+            configure_file("${OGRE_TEMPLATES_DIR}/Android.OgreGLES2.mk.in" "${NDKOUT}/jni/Android.mk" @ONLY)
+        elseif (CEGUI_SAMPLES_RENDERER_OPENGLES2_ACTIVE)
+            SET(ANDROID_GLES_VERSION "0x00030000")
+            configure_file("${OGRE_TEMPLATES_DIR}/Android.GLES3.mk.in" "${NDKOUT}/jni/Android.mk" @ONLY)
+        endif()
         configure_file("${OGRE_TEMPLATES_DIR}/AndroidManifest.xml.in" "${NDKOUT}/AndroidManifest.xml" @ONLY)
-        configure_file("${OGRE_TEMPLATES_DIR}/Android_resources.cfg.in" "${NDKOUT}/assets/resources.cfg" @ONLY)
-        if (OGRE_RenderSystem_GLES2_FOUND)
-            configure_file("${OGRE_TEMPLATES_DIR}/Android.OgreGLES2.mk.in" "${NDKOUT}/jni/Android.mk" @ONLY)
-        elseif (OGRE_RenderSystem_GLES_FOUND)
-            configure_file("${OGRE_TEMPLATES_DIR}/Android.OgreGLES1.mk.in" "${NDKOUT}/jni/Android.mk" @ONLY)
-        endif()

         add_custom_command(
             TARGET ${ANDROID_PROJECT_TARGET} POST_BUILD COMMAND ${ANDROID_EXECUTABLE}


Add compiler ID check to support building on macOS.

--- cmake/CodeCoverage.cmake
+++ cmake/CodeCoverage.cmake
@@ -54,8 +54,8 @@
 ENDIF() # NOT GCOV_PATH

 IF(NOT CMAKE_COMPILER_IS_GNUCXX)
-	IF(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-        MESSAGE(FATAL_ERROR "Compiler is not GNU gcc or Clang! Aborting...")
+	IF(NOT ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang"))
+        MESSAGE(FATAL_ERROR "Compiler \"${CMAKE_CXX_COMPILER_ID}\" is not GNU gcc or Clang! Aborting...")
 	ENDIF()
 ENDIF() # NOT CMAKE_COMPILER_IS_GNUCXX


feat: add CMake option to disable -Werror/-WX (#1150)

Fixes #671

--- cmake/EnableWerror.cmake
+++ cmake/EnableWerror.cmake
@@ -14,6 +14,10 @@
 # limitations under the License.
 # ~~~

+option(GOOGLE_CLOUD_CPP_ENABLE_WERROR
+       "If set, compiles the library with -Werror and /WX (MSVC)." ON)
+mark_as_advanced(GOOGLE_CLOUD_CPP_ENABLE_WERROR)
+
 # Find out what flags turn on all available warnings and turn those warnings
 # into errors.
 include(CheckCXXCompilerFlag)
@@ -24,7 +28,9 @@
 function (google_cloud_cpp_add_common_options target)
     if (MSVC)
         target_compile_options(${target} PRIVATE "/W3")
-        target_compile_options(${target} PRIVATE "/WX")
+        if (GOOGLE_CLOUD_CPP_ENABLE_WERROR)
+            target_compile_options(${target} PRIVATE "/WX")
+        endif ()
         target_compile_options(${target} PRIVATE "/experimental:external")
         target_compile_options(${target} PRIVATE "/external:W0")
         target_compile_options(${target} PRIVATE "/external:anglebrackets")
@@ -37,7 +43,8 @@
     if (GOOGLE_CLOUD_CPP_COMPILER_SUPPORTS_WEXTRA)
         target_compile_options(${target} PRIVATE "-Wextra")
     endif ()
-    if (GOOGLE_CLOUD_CPP_COMPILER_SUPPORTS_WERROR)
+    if (GOOGLE_CLOUD_CPP_COMPILER_SUPPORTS_WERROR
+        AND GOOGLE_CLOUD_CPP_ENABLE_WERROR)
         target_compile_options(${target} PRIVATE "-Werror")
     endif ()
     if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU"


Changed glew to another version which works on linux

--- cmake/ExternalGLEW.cmake
+++ cmake/ExternalGLEW.cmake
@@ -8,7 +8,7 @@
         # The original GLEW library of https://github.com/nigels-com/glew/ has not proper cmake setup
         # Use this repo instead
         GIT_REPOSITORY "https://github.com/Perlmint/glew-cmake.git"
-        GIT_TAG "db1e93ef4c63f627ddc73cb12925a61d4f88e2b1"
+        GIT_TAG "9aec204e2ef0d4fa9f948b9193b4f409e38d905f"
         CONFIGURE_COMMAND
             ${CMAKE_COMMAND}
 		${FAST_EXTERNAL_BUILD_DIR}/glew/src/glew/build/cmake/


cmake: don't generate dllmain for cudev module

--- cmake/OpenCVModule.cmake
+++ cmake/OpenCVModule.cmake
@@ -909,7 +909,11 @@
       source_group("Src" FILES "${_VS_VERSION_FILE}")
     endif()
   endif()
-  if(WIN32 AND NOT ("${the_module}" STREQUAL "opencv_core" OR "${the_module}" STREQUAL "opencv_world")
+  if(WIN32 AND NOT (
+          "${the_module}" STREQUAL "opencv_core" OR
+          "${the_module}" STREQUAL "opencv_world" OR
+          "${the_module}" STREQUAL "opencv_cudev"
+      )
       AND (BUILD_SHARED_LIBS AND NOT "x${OPENCV_MODULE_TYPE}" STREQUAL "xSTATIC")
       AND NOT OPENCV_SKIP_DLLMAIN_GENERATION
   )


alpakaCommon.cmake: Fix Omp5 checks

alpakaCommon.cmake: Fix Omp5 checks

--- cmake/alpakaCommon.cmake
+++ cmake/alpakaCommon.cmake
@@ -239,9 +239,11 @@
     find_package(OpenMP)

     if(OpenMP_CXX_FOUND)
-         if(ALPAKA_ACC_ANY_BT_OMP5_ENABLED)
-           if(OpenMP_CXX_VERSION VERSION_LESS 4.0)
-               set(ALPAKA_ACC_ANY_BT_OMP5_ENABLE OFF CACHE BOOL "Enable the OpenMP 5.0 CPU block and thread back-end" FORCE)
+        if(ALPAKA_ACC_ANY_BT_OMP5_ENABLED)
+            if(OpenMP_CXX_VERSION VERSION_LESS 4.0)
+                message(FATAL_ERROR "ALPAKA_ACC_ANY_BT_OMP5_ENABLE requires compiler support for OpenMP at lease 4.0, 5.0 is recommended.")
+            elseif(OpenMP_CXX_VERSION VERSION_LESS 5.0)
+                message(WARNING "OpenMP < 5.0, for ALPAKA_ACC_ANY_BT_OMP5_ENABLE 5.0 is recommended.")
             endif()
         endif()

@@ -253,9 +255,6 @@
         endif()
     else()
         message(FATAL_ERROR "Optional alpaka dependency OpenMP could not be found!")
-        set(ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE OFF CACHE BOOL "Enable the OpenMP 2.0 CPU grid block back-end" FORCE)
-        set(ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE OFF CACHE BOOL "Enable the OpenMP 2.0 CPU block thread back-end" FORCE)
-        set(ALPAKA_ACC_ANY_BT_OMP5_ENABLE OFF CACHE BOOL "Enable the OpenMP 5.0 CPU block and thread back-end" FORCE)
     endif()
 endif()


fix linking on mac (hopefully)

fix linking on mac (hopefully)

--- cmake/custom/xcint.cmake
+++ cmake/custom/xcint.cmake
@@ -31,14 +31,24 @@
     src/empty.cpp
     )

-target_link_libraries(
-    xcint_shared
-    ${MATH_LIBS}
-    "-Wl,--whole-archive"
-    xcint
-    ${PROJECT_BINARY_DIR}/external/lib/libxcfun.a
-    "-Wl,--no-whole-archive"
-    )
+if(APPLE)
+    target_link_libraries(
+        xcint_shared
+        ${MATH_LIBS}
+        "-Wl, -force_load"
+        xcint
+        ${PROJECT_BINARY_DIR}/external/lib/libxcfun.a
+        )
+else()
+    target_link_libraries(
+        xcint_shared
+        ${MATH_LIBS}
+        "-Wl,--whole-archive"
+        xcint
+        ${PROJECT_BINARY_DIR}/external/lib/libxcfun.a
+        "-Wl,--no-whole-archive"
+        )
+endif()

 add_dependencies(xcint xcfun)
 add_dependencies(xcint numgrid)


update fifechan link

update fifechan link

--- cmake/get-fifechan.cmake
+++ cmake/get-fifechan.cmake
@@ -35,8 +35,8 @@
       PREFIX              ${DEPENDENCY_EXTRACT_DIR}
       DOWNLOAD_DIR        ${DEPENDENCY_DOWNLOAD_DIR}
       #URL                 https://github.com/fifengine/fifechan/releases/tag/${FIFECHAN_VERSION}/fifechan-v${FIFECHAN_VERSION}-VC14.zip
-      URL                 https://ci.appveyor.com/api/buildjobs/bucj5vdy8bx4wnr2/artifacts/fifechan-shared-VC14-x86.zip
-      URL_MD5             9cc0c3210f2b20d995f19d39341be55e
+      URL                 https://ci.appveyor.com/api/buildjobs/eavnmgwxu19xa6r6/artifacts/fifechan-shared-VC14-x86.zip
+      URL_MD5             1
       CONFIGURE_COMMAND   ""
       BUILD_COMMAND       ""
       INSTALL_COMMAND


Add support for on and off screen Mesa in same build.

On and Off scrreen Mesa can now be enabled in the same version of VTK.
Tested with Mesa 12.0.0-rc2, but has been reported to work with 11.2 as
well.

--- CMake/vtkOpenGL.cmake
+++ CMake/vtkOpenGL.cmake
@@ -19,9 +19,11 @@
 # OSMesa logic for offscreen mesa rendering.
 option(VTK_OPENGL_HAS_OSMESA
   "The OpenGL library being used supports off screen Mesa calls" OFF)
+
 # EGL offscreen rendering
 option(VTK_USE_OFFSCREEN_EGL
   "Use EGL for OpenGL client API for offscreen rendering." OFF)
+
 set(VTK_EGL_DEVICE_INDEX 0 CACHE STRING
   "Index of the EGL device (graphics card) to use.")

@@ -33,21 +35,26 @@
 endif()

 option(VTK_USE_OFFSCREEN "Use off screen calls by default" OFF)
+
 unset(VTK_CAN_DO_OFFSCREEN)
+unset(VTK_CAN_DO_ONSCREEN)
+
 if(VTK_OPENGL_HAS_OSMESA OR WIN32 OR VTK_USE_OFFSCREEN_EGL)
   set(VTK_CAN_DO_OFFSCREEN 1)
 endif()
+
 if(VTK_USE_X OR VTK_USE_COCOA OR WIN32 OR ANDROID OR APPLE_IOS)
-  set(VTK_USE_OSMESA FALSE)
+  set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA})
   if (VTK_USE_OFFSCREEN_EGL)
     message(FATAL_ERROR "VTK_USE_OFFSCREEN_EGL set together with one of ("
       "VTK_USE_X, VTK_USE_COCOA, WIN32, ANDROID OR APPLE_IOS). "
       "You cannot use both offscreen and one of the listed windowing systems.")
   endif()
+  set(VTK_CAN_DO_ONSCREEN 1)
 elseif(VTK_USE_OFFSCREEN_EGL)
   set(VTK_USE_OSMESA FALSE)
 else()
-  set(VTK_USE_OSMESA TRUE)
+  set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA})
 endif()

 mark_as_advanced(VTK_USE_X VTK_OPENGL_HAS_OSMESA VTK_USE_OFFSCREEN_EGL
@@ -56,10 +63,17 @@
 if(VTK_USE_OSMESA)
   find_package(OSMesa REQUIRED)
   include_directories(SYSTEM ${OSMESA_INCLUDE_DIR})
-elseif(VTK_USE_OFFSCREEN_EGL)
-    find_package(EGL REQUIRED)
-    include_directories(SYSTEM ${EGL_INCLUDE_DIR})
-else()
+endif()
+
+if(VTK_USE_OFFSCREEN_EGL)
+  find_package(EGL REQUIRED)
+  include_directories(SYSTEM ${EGL_INCLUDE_DIR})
+endif()
+
+if(VTK_CAN_DO_ONSCREEN)
+  # OpenGL libraries are explicity needed if windowing system-based API is being
+  # used. Otherwise, if only doing OFFSCREEN, the GL API is provided by the
+  # offscreen library be it EGL or OSMESA.
   find_package(OpenGL REQUIRED)
   include_directories(SYSTEM ${OPENGL_INCLUDE_DIR})
   if(APPLE)
@@ -83,9 +97,11 @@
 function(vtk_opengl_link target)
   if(VTK_USE_OSMESA)
     vtk_module_link_libraries(${target} LINK_PRIVATE ${OSMESA_LIBRARY})
-  elseif(VTK_USE_OFFSCREEN_EGL)
+  endif()
+  if(VTK_USE_OFFSCREEN_EGL)
     vtk_module_link_libraries(${target} LINK_PRIVATE ${EGL_LIBRARIES})
-  else()
+  endif()
+  if(VTK_CAN_DO_ONSCREEN)
     vtk_module_link_libraries(${target} LINK_PRIVATE ${OPENGL_LIBRARIES})
   endif()
 endfunction()


COMP: Remove debug output after vcl_complex removal from wrapping

These messages were added in ae275704683ff7f9e7cc0f8b535374df642d7607,
but should not be kept as they were only there for debugging purposes.

Change-Id: I5d3ba74fb26f73225b99b7984a3e00b9c94393de

--- Wrapping/WrapITKTypes.cmake
+++ Wrapping/WrapITKTypes.cmake
@@ -41,12 +41,9 @@
         # no namespaces
         set(swig_name "${itk_Wrap_Class}")
       endif()
-      message("wrapTpl: ${wrapTpl} wrapType: ${wrapType} swig_name: ${swig_name}")
       set(ITKT_${itk_Wrap_Prefix}${wrapTpl} "${itk_Wrap_Class}< ${wrapType} >")
       set(ITKM_${itk_Wrap_Prefix}${wrapTpl} "${itk_Wrap_Prefix}${wrapTpl}")
       set(ITKN_${itk_Wrap_Prefix}${wrapTpl} "${swig_name}${wrapTpl}")
-      message("ITKT_${itk_Wrap_Prefix}${wrapTpl} ${ITKT_${itk_Wrap_Prefix}${wrapTpl}}")
-      message("ITKM_${itk_Wrap_Prefix}${wrapTpl} ${ITKM_${itk_Wrap_Prefix}${wrapTpl}}")
    endforeach()
 endmacro()


Add print target type property

Add print target type property

--- reason.util.cmake
+++ reason.util.cmake
@@ -109,7 +109,8 @@
     endif()
   endfunction()

-  reason_verbose("${TARGET_NAME} properties:")
+  get_target_property(TARGET_TYPE "${TARGET_NAME}" "TYPE")
+  reason_verbose("${TARGET_NAME} properties: [type=${TARGET_TYPE}]")

   # @TODO compile define
   reason_print_target_properties_one("${TARGET_NAME}" "INTERFACE_COMPILE_OPTIONS")


Small documentation fixes.

Small documentation fixes.

--- CPPCheck.cmake
+++ CPPCheck.cmake
@@ -19,7 +19,7 @@
     if (NOT CPPCHECK_EXECUTABLE)

         message (SEND_ERROR "cppcheck binary was not found, make sure "
-                            "to call find_package (cppcheck) before "
+                            "to call find_program (cppcheck) before "
                             "using this module")

     else (NOT CPPCHECK_EXECUTABLE)
@@ -59,11 +59,13 @@

 # cppcheck_add_to_global_unused_function_check
 #
-# Adds the source files as specified in SOURCES_VAR to the global
+# Adds the source files as specified in SOURCES to the global
 # list of source files to check during the global unused function
 # target
 #
-# SOURCES_VAR : A variable containing a list of sources
+# [Optional] SOURCES : A variable containing a list of sources
+# [Optional] INCLUDES : A list of include directories used to
+#                       build these sources.
 function (cppcheck_add_to_global_unused_function_check)

     set (GLOBAL_CHECK_MULTIVAR_ARGS
@@ -274,7 +276,6 @@
 # [Optional] WARN_ONLY : Don't error out, just warn on potential problems.
 # [Optional] NO_CHECK_STYLE : Don't check for style issues
 # [Optional] CHECK_UNUSED : Check for unused functions
-# [Optional] CHECK_TARGET_HEADERS : Also check header files on TARGET
 # [Optional] INCLUDES : Check header files in specified include directories.
 function (cppcheck_target_sources TARGET)


Separate COMMON_CXXSTD_FLAGS in Compiler.cmake

--- Compiler.cmake
+++ Compiler.cmake
@@ -64,12 +64,12 @@

   if(NOT COMMON_USE_CXX03)
     if(CMAKE_COMPILER_IS_CLANG)
-      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+      set(COMMON_CXXSTD_FLAGS "-std=c++11")
     elseif(NOT GCC_COMPILER_VERSION VERSION_LESS 4.3)
       if(GCC_COMPILER_VERSION VERSION_LESS 4.7)
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+        set(COMMON_CXXSTD_FLAGS "-std=c++0x")
       else()
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+        set(COMMON_CXXSTD_FLAGS "-std=c++11")
       endif()
     endif()
   endif()
@@ -84,7 +84,7 @@
   set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -xhost")
   set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -xhost")
   if(NOT COMMON_USE_CXX03)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+    set(COMMON_CXXSTD_FLAGS "-std=c++11")
   endif()

 # xlc/BlueGene/PPC
@@ -130,3 +130,5 @@
     set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /W3 /Zm500 /EHsc /GR /WX")
   endif()
 endif()
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_CXXSTD_FLAGS}")


fixed cmake script for detecting boost version to work when only static libraries present.

--- build/cmake/custom_scripts/schism_boost.cmake
+++ build/cmake/custom_scripts/schism_boost.cmake
@@ -103,8 +103,8 @@
                                                 "${CMAKE_SHARED_LIBRARY_PREFIX}boost_filesystem-mt${CMAKE_SHARED_LIBRARY_SUFFIX}${SCM_BOOST_LIB_SUFFIX}"
                                                 "${CMAKE_SHARED_LIBRARY_PREFIX}boost_filesystem${CMAKE_SHARED_LIBRARY_SUFFIX}${SCM_BOOST_LIB_SUFFIX}")
     elseif (WIN32)
-        LIST(APPEND _SCM_BOOST_FILESYSTEM_LIB   "${CMAKE_SHARED_LIBRARY_PREFIX}boost_filesystem-${SCM_COMPILER_SUFFIX}-mt-${SCM_BOOST_LIB_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-                                                "${CMAKE_SHARED_LIBRARY_PREFIX}boost_filesystem-mt${CMAKE_SHARED_LIBRARY_SUFFIX}")
+        LIST(APPEND _SCM_BOOST_FILESYSTEM_LIB   "${CMAKE_STATIC_LIBRARY_PREFIX}libboost_filesystem-${SCM_COMPILER_SUFFIX}-mt-${SCM_BOOST_LIB_VERSION}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+                                                "${CMAKE_STATIC_LIBRARY_PREFIX}libboost_filesystem-mt${CMAKE_STATIC_LIBRARY_SUFFIX}")
     endif (UNIX)


Fixes for MSVC debug/release support.  Also basic support for release with debug info.


make sure to die on failure

make sure to die on failure

--- CMakeModules/FindCompilerFlags.cmake
+++ CMakeModules/FindCompilerFlags.cmake
@@ -15,6 +15,7 @@
 if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND "${CMAKE_BUILD_TYPE}" MATCHES "Debug")
   if (NOT APPLE OR DARWIN_VERSION GREATER 12)
     add_definitions("-sanitize=undefined,address")
+    add_definitions("-fno-sanitize-recover")
     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -sanitize=undefined,address")
     set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -sanitize=undefined,address")
     set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -sanitize=undefined,address")


cmake: Add -Wno-c++98-compat if building for C++11.

On clang, this is default on, and with C++11 we use override, which
is not C++98 compatible.

--- cmake/Modules/CppUTestWarningFlags.cmake
+++ cmake/Modules/CppUTestWarningFlags.cmake
@@ -52,9 +52,14 @@
         Wno-weak-vtables
         )

-
     check_and_append_c_warning_flags(${WARNING_C_FLAGS})
     check_and_append_c_warning_flags(${WARNING_C_ONLY_FLAGS})
     check_and_append_cxx_warning_flags(${WARNING_CXX_FLAGS})

+    if (C++11)
+        check_cxx_compiler_flag("-Wno-c++98-compat" NO_WARNING_CXX_98_COMPAT_FLAG)
+        if (NO_WARNING_CXX_98_COMPAT_FLAG)
+            set(CPPUTEST_CXX_WARNING_FLAGS "${CPPUTEST_CXX_WARNING_FLAGS} -Wno-c++98-compat")
+        endif (NO_WARNING_CXX_98_COMPAT_FLAG)
+    endif (C++11)
 endif (MSVC)


install to share/PKGNAME/cmake, not share/cmake/PKGNAME so that this can go in the same subdir with assets, resources, stocks and bonds

--- cmake/install_cmake_infrastructure.cmake
+++ cmake/install_cmake_infrastructure.cmake
@@ -115,7 +115,7 @@
     ${CMAKE_CURRENT_BINARY_DIR}/cmake_install/${package_lower}-config.cmake
     ${CMAKE_CURRENT_BINARY_DIR}/cmake_install/${package_lower}-config-version.cmake
     ${INSTALLABLE_CFG_EXTRAS}
-    DESTINATION share/cmake/${PACKAGE_NAME}
+    DESTINATION share/${PACKAGE_NAME}/cmake
     )

   # install libraries


fix incorrect command result checking - was previously checking result of *previous* sh call

Buddy: John

--- cmake/templates/ios/EmbedFramework.cmake
+++ cmake/templates/ios/EmbedFramework.cmake
@@ -8,8 +8,7 @@
       TARGET ${target_name}
       POST_BUILD COMMAND /bin/sh -c
       \"
-      ${CMAKE_COMMAND} -E make_directory "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}" \&\>/dev/null \;
-      if [ $$\? -ne 0 ] \; then
+      if ! ${CMAKE_COMMAND} -E make_directory "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}" \&\>/dev/null \; then
           echo "Failed to create Frameworks directory in app bundle" \;
           exit 1 \;
       fi
@@ -21,8 +20,7 @@
       TARGET ${target_name}
       POST_BUILD COMMAND /bin/sh -c
       \"
-      ${CMAKE_COMMAND} -E copy_directory "\${PROJECT_DIR}/${framework_src_dir}/${framework_name}.framework" "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}/${framework_name}.framework" \&\>/dev/null \;
-      if [ $$\? -ne 0 ] \; then
+      if ! ${CMAKE_COMMAND} -E copy_directory "\${PROJECT_DIR}/${framework_src_dir}/${framework_name}.framework" "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}/${framework_name}.framework" \&\>/dev/null \; then
           echo "Failed to copy framework ${framework_name} to app bundle" \;
           exit 1 \;
       fi
@@ -34,8 +32,7 @@
       TARGET ${target_name}
       POST_BUILD COMMAND /bin/sh -c
       \"
-      ${CMAKE_COMMAND} -E remove_directory "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}/${framework_name}.framework/Headers/" \&\>/dev/null \;
-      if [ $$\? -ne 0 ] \; then
+      if ! ${CMAKE_COMMAND} -E remove_directory "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}/${framework_name}.framework/Headers/" \&\>/dev/null \; then
           echo "Failed to remove Headers from framework ${framework_name}" \;
           exit 1 \;
       fi
@@ -47,10 +44,11 @@
       TARGET ${target_name}
       POST_BUILD COMMAND /bin/sh -c
       \"
-      codesign --force --verbose "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}/${framework_name}.framework" --sign '\${CODE_SIGN_IDENTITY}\' \;
-      if [ $$\? -ne 0 ] \; then
-          echo "Failed to codesign framework ${framework_name}" \;
-          exit 1 \;
+      if codesign --force --verbose "\${CONFIGURATION_BUILD_DIR}/\${FRAMEWORKS_FOLDER_PATH}/${framework_name}.framework" --sign '\${CODE_SIGN_IDENTITY}\'  \; then
+        echo "codesign framework ${framework_name} succeeded" \;
+      else
+        echo "Failed to codesign framework ${framework_name}" \;
+        exit 1 \;
       fi
       \"
   )


Don't show an error when heaptrack_gui is not in PATH.

--- heaptrack.sh.cmake
+++ heaptrack.sh.cmake
@@ -155,7 +155,7 @@

     echo "Heaptrack finished! Now run the following to investigate the data:"
     echo
-    if [[ "$(which heaptrack_gui)" != "" ]]; then
+    if [[ "$(which heaptrack_gui 2> /dev/null)" != "" ]]; then
         echo "  heaptrack_gui \"$output\""
     else
         echo "  heaptrack_print \"$output\" | less"


Add comment about Object Library usage

Add comment about Object Library usage

Former-commit-id: 1a58c1a245c109b785c58d2d3a22ce2a8d951f5f

--- HalideGenerator.cmake
+++ HalideGenerator.cmake
@@ -160,6 +160,14 @@
   set(multiValueArgs SRCS STUB_DEPS)
   cmake_parse_arguments(args "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

+  # We need to generate an "object" library for every generator, so that any
+  # generator that depends on our stub can link in our generator as well.
+  # Unfortunately, an ordinary static library won't do: CMake has no way to
+  # force "alwayslink=1", and a static library with just a self-registering
+  # Generator is almost certain to get optimized away at link time. Using
+  # an "Object Library" lets us dodge this (it basically just groups .o files
+  # together and presents them at the end), at the cost of some decidedly
+  # ugly bits right here.
   set(OBJLIB "${NAME}.objlib")
   add_library("${OBJLIB}" OBJECT ${args_SRCS})
   add_dependencies("${OBJLIB}" Halide)


qt: disable webkit on Windows

qt: disable webkit on Windows

--- superbuild/Projects/win32/qt.cmake
+++ superbuild/Projects/win32/qt.cmake
@@ -22,7 +22,7 @@
                     -nomake tests
                     -qt-libjpeg
                     -qt-libtiff
-                    -webkit
+                    -no-webkit
                     -xmlpatterns
                     -I <INSTALL_DIR>/include
                     -L <INSTALL_DIR>/lib


name/group/descriptive url/project title usage clarified, needs testing


New version: 0.4.2

New version: 0.4.2

--- hawkey/VERSION.cmake
+++ hawkey/VERSION.cmake
@@ -1,3 +1,3 @@
 SET(HAWKEY_MAJOR "0")
 SET(HAWKEY_MINOR "4")
-SET(HAWKEY_PATCH "1")
+SET(HAWKEY_PATCH "2")


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Modules/ThirdParty/KWSys/src/KWSys/kwsysDateStamp.cmake
+++ Modules/ThirdParty/KWSys/src/KWSys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 03)

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


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Modules/ThirdParty/KWSys/src/KWSys/kwsysDateStamp.cmake
+++ Modules/ThirdParty/KWSys/src/KWSys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 07)

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


fix failing CMake build when "git" is not installed

--- GetGitHash.cmake
+++ GetGitHash.cmake
@@ -6,7 +6,8 @@
       OUTPUT_VARIABLE GIT_HASH
       OUTPUT_STRIP_TRAILING_WHITESPACE
     )
-  else()
+  endif()
+  if(NOT GIT_HASH)
     set(GIT_HASH "NO_GIT_COMMIT_HASH_DEFINED")
   endif()
   set(${_git_hash} "${GIT_HASH}" PARENT_SCOPE)


adding libwebsockets example

adding libwebsockets example

--- PI.cmake
+++ PI.cmake
@@ -13,6 +13,11 @@
 ##
 ## cpprestsdk Build example:
 ##          cmake -DCMAKE_TOOLCHAIN_FILE=~/Workspace/rpi_rootfs/PI.cmake  -DCMAKE_BUILD_TYPE=Debug ..
+##
+## libwebsockets Build example:
+##          cmake -DCMAKE_TOOLCHAIN_FILE=~/Workspace/rpi_rootfs/PI.cmake  -DCMAKE_BUILD_TYPE=Debug ..  -DLWS_WITH_SHARED=OFF
+##          cmake -DCMAKE_TOOLCHAIN_FILE=~/Workspace/rpi_rootfs/PI.cmake  -DCMAKE_BUILD_TYPE=Debug .. -DLWS_WITH_SHARED=OFF -DLWS_WITH_LIBUV=OFF -DLWS_SSL_CLIENT_USE_OS_CA_CERTS=OFF -DLWS_WITHOUT_DAEMONIZE=OFF -DLWS_WITH_HTTP2=ON  -DLWS_SSL_SERVER_WITH_ECDH_CERT=ON
+##
 ##

 cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
@@ -83,11 +88,13 @@

 SET(OPENSSL_FOUND TRUE)
 SET(OPENSSL_ROOT_DIR ${CMAKE_SYSROOT}/usr/include/openssl)
-SET(OPENSSL_INCLUDE_DIR "${CMAKE_SYSROOT}/usr/include/arm-linux-gnueabihf")
+SET(OPENSSL_INCLUDE_DIRS
+    "${CMAKE_SYSROOT}/usr/include/openssl"
+    "${CMAKE_SYSROOT}/usr/include/arm-linux-gnueabihf" )
 SET(OPENSSL_LIBRARIES
     "${CMAKE_SYSROOT}/usr/lib/arm-linux-gnueabihf/libssl.a"
-    "${CMAKE_SYSROOT}/usr/lib/arm-linux-gnueabihf/libcrypto.a"
-    )
+    "${CMAKE_SYSROOT}/usr/lib/arm-linux-gnueabihf/libcrypto.a" )
+

 OPTION(BUILD_SHARED_LIBS "Build shared Libraries." OFF)


Netcdf now handles different directories for c and cxx bindings.

Change-Id: I50f463046399ec1c6186ffe0b92066a642e354f9

--- CMake/FindNetCDF.cmake
+++ CMake/FindNetCDF.cmake
@@ -38,17 +38,26 @@
   set (NETCDF_FIND_QUIETLY TRUE)
 endif ()

+set(USE_DEFAULT_PATHS "NO_DEFAULT_PATH")
+if(NETCDF_USE_DEFAULT_PATHS)
+  set(USE_DEFAULT_PATHS "")
+endif()
+
 find_path (NETCDF_INCLUDE_DIR netcdf.h
-  HINTS NETCDF_DIR ENV NETCDF_DIR)
+  HINTS "${NETCDF_DIR}/include")
 mark_as_advanced (NETCDF_INCLUDE_DIR)
 set (NETCDF_C_INCLUDE_DIRS ${NETCDF_INCLUDE_DIR})

-find_library (NETCDF_LIBRARY NAMES netcdf)
+find_library (NETCDF_LIBRARY NAMES netcdf
+  HINTS "${NETCDF_DIR}/lib")
 mark_as_advanced (NETCDF_LIBRARY)
+
 set (NETCDF_C_LIBRARIES ${NETCDF_LIBRARY})

 #start finding requested language components
 set (NetCDF_libs "")
+set (NetCDF_includes "${NETCDF_INCLUDE_DIR}")
+
 get_filename_component (NetCDF_lib_dirs "${NETCDF_LIBRARY}" PATH)
 set (NETCDF_HAS_INTERFACES "YES") # will be set to NO if we're missing any interfaces

@@ -56,9 +65,15 @@
   if (NETCDF_${lang})
     #search starting from user modifiable cache var
     find_path (NETCDF_${lang}_INCLUDE_DIR NAMES ${header}
-      HINTS "${NETCDF_INCLUDE_DIR}" NO_DEFAULT_PATH)
+      HINTS "${NETCDF_INCLUDE_DIR}"
+      HINTS "${NETCDF_${lang}_ROOT}/include"
+      ${USE_DEFAULT_PATHS})
+
     find_library (NETCDF_${lang}_LIBRARY NAMES ${libs}
-      HINTS "${NetCDF_lib_dirs}" NO_DEFAULT_PATH)
+      HINTS "${NetCDF_lib_dirs}"
+      HINTS "${NETCDF_${lang}_ROOT}/lib"
+      ${USE_DEFAULT_PATHS})
+
     mark_as_advanced (NETCDF_${lang}_INCLUDE_DIR NETCDF_${lang}_LIBRARY)

     #export to internal varS that rest of project can use directly
@@ -67,6 +82,7 @@

     if (NETCDF_${lang}_INCLUDE_DIR AND NETCDF_${lang}_LIBRARY)
       list (APPEND NetCDF_libs ${NETCDF_${lang}_LIBRARY})
+      list (APPEND NetCDF_includes ${NETCDF_${lang}_INCLUDE_DIR})
     else ()
       set (NETCDF_HAS_INTERFACES "NO")
       message (STATUS "Failed to find NetCDF interface for ${lang}")
@@ -93,7 +109,7 @@
 #export accumulated results to internal varS that rest of project can depend on
 list (APPEND NetCDF_libs "${NETCDF_C_LIBRARIES}")
 set (NETCDF_LIBRARIES ${NetCDF_libs})
-set (NETCDF_INCLUDE_DIRS ${NETCDF_INCLUDE_DIR})
+set (NETCDF_INCLUDE_DIRS ${NetCDF_includes})

 # handle the QUIETLY and REQUIRED arguments and set NETCDF_FOUND to TRUE if
 # all listed variables are TRUE


CI: lower required NDK API level to 16

CI: lower required NDK API level to 16

--- ci-build.cmake
+++ ci-build.cmake
@@ -54,7 +54,7 @@

 if(DEFINED ENV{ANDROID})
     set(CROSS
-        -DANDROID_NATIVE_API_LEVEL=21
+        -DANDROID_NATIVE_API_LEVEL=16
         -DANDROID_NDK=${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r15b
         -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CMake/toolchain/android.toolchain.cmake
         "-DANDROID_ABI=armeabi-v7a with NEON")


BUG: fix mantis 1186

BUG: fix mantis 1186

--- SuperBuild/CMake/External_tiff.cmake
+++ SuperBuild/CMake/External_tiff.cmake
@@ -80,6 +80,8 @@
     -DBUILD_SHARED_LIBS:BOOL=ON
     -DBUILD_TESTING:BOOL=OFF
     -Djpeg:BOOL=TRUE
+    -Dlzma:BOOL=FALSE
+    -Djbig:BOOL=FALSE
     -Dzlib:BOOL=TRUE
     -Dpixarlog:BOOL=TRUE
     ${TIFF_SB_CONFIG}


Removed commented code

Removed commented code

--- 3rd_party/ExternalProject_ACE.cmake
+++ 3rd_party/ExternalProject_ACE.cmake
@@ -17,11 +17,6 @@
 SET_PROPERTY(TARGET ace_IMP APPEND PROPERTY IMPORTED_LOCATION ${ace_LIBRARY_SHARED} )
 SET_PROPERTY(TARGET ace_IMP APPEND PROPERTY IMPORTED_IMPLIB ${ace_LIBRARY_IMP} )

-#if(MSVC)
-#    SET_PROPERTY(TARGET ace_IMP APPEND PROPERTY IMPORTED_LOCATION_DEBUG ${ace_LIBRARY_SHARED_D} )
-#    SET_PROPERTY(TARGET ace_IMP APPEND PROPERTY IMPORTED_IMPLIB_DEBUG ${ace_LIBRARY_IMP_D} )
-#endif()
-
 set_property(TARGET ace_IMP APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS ACE_HAS_DLL=1)
 set_property(TARGET ace_IMP APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads)
 message(${ace_LIBRARY_SHARED})


Add conditional tests dependency resolution (#265)

--- BdeBuildSystem/BdeTargetUtils.cmake
+++ BdeBuildSystem/BdeTargetUtils.cmake
@@ -417,6 +417,9 @@
                                                              ${${uor_name}_PCDEPS}
                                                              ${${uor_name}_TEST_PCDEPS}
                                                    LABELS    "all" ${target} ${pkg})
+                        if (${pkg}_TEST_TARGETS)
+                            bbs_import_target_dependencies(${target} ${${uor_name}_TEST_PCDEPS})
+                        endif()
                     endif()
                 endif()
             endforeach()
@@ -429,7 +432,6 @@
             bbs_import_target_dependencies(${target} ${${uor_name}_PCDEPS})

             if (NOT _SKIP_TESTS)
-                bbs_import_target_dependencies(${target} ${${uor_name}_TEST_PCDEPS})
                 if (NOT TARGET ${target}.t)
                     add_custom_target(${target}.t)
                 endif()
@@ -451,12 +453,14 @@

             bbs_import_target_dependencies(${target} ${${uor_name}_PCDEPS})
             if (NOT _SKIP_TESTS)
-                bbs_import_target_dependencies(${target} ${${uor_name}_TEST_PCDEPS})
                 bbs_configure_target_tests(${target}
                                            SOURCES    ${${uor_name}_TEST_SOURCES}
                                            TEST_DEPS  ${${uor_name}_PCDEPS}
                                                       ${${uor_name}_TEST_PCDEPS}
                                            LABELS     "all" ${target})
+                if (${target}_TEST_TARGETS)
+                    bbs_import_target_dependencies(${target} ${${uor_name}_TEST_PCDEPS})
+                endif()
             endif()
         endif()

@@ -544,7 +548,9 @@
                                        TEST_DEPS  ${${uor_name}_PCDEPS}
                                                   ${${uor_name}_TEST_PCDEPS}
                                        LABELS     "all" ${target})
-            bbs_import_target_dependencies(${lib_target} "${${uor_name}_TEST_PCDEPS}")
+            if (${lib_target}_TEST_TARGETS)
+                bbs_import_target_dependencies(${lib_target} ${${uor_name}_TEST_PCDEPS})
+            endif()
         endif()
     else()
         # Not a library or an application


support define variable by shell command

--- config.cmake
+++ config.cmake
@@ -1,5 +1,7 @@
 # linux
-set(LUA_INCLUDE_DIR /usr/local/include/)
+if(NOT DEFINED LUA_INCLUDE_DIR)
+    set(LUA_INCLUDE_DIR /usr/local/include/)
+endif()

 # windows
 # set(LUA_INCLUDE_DIR /usr/local/include/)


fix: Look for SuiteSparse libs also in lib/x86_64-linux-gnu suffix [CMake]

- The SuiteSparse libraries are installed in /usr/lib/x86_64-linux-gnu on Ubuntu.
- Print status message when QUIET option of find_package not given.
- Add SuiteSparse_DEBUG flag which enables diagnostic messages.

--- CMake/Modules/FindSuiteSparse.cmake
+++ CMake/Modules/FindSuiteSparse.cmake
@@ -83,6 +83,11 @@
 # and variables UMFPACK_FOUND, UMFPACK_INCLUDE_DIRS, and UMFPACK_LIBRARIES can be used
 # to refer to the found UMFPACK installation. These variables would otherwise be set by
 # a custom FindUMFPACK.cmake module.
+#
+# To debug the discovery of SuiteSparse libraries, set `SuiteSparse_DEBUG` to
+# a true value before the find_package call. This Find module will then output
+# additional diagnostic messages which help to identify problems finding a
+# SuiteSparse installation.

 #=============================================================================
 # Copyright 2016 Andreas Schuh <andreas.schuh.84@gmail.com>
@@ -96,6 +101,14 @@
 #=============================================================================
 # (To distribute this file outside of CMake, substitute the full
 #  License text for the above reference.)
+
+# ------------------------------------------------------------------------------
+# Print debug message when debugging of this Find module is enabled
+macro (_suitesparse_debug_message msg)
+  if (SuiteSparse_DEBUG)
+    message("** FindSuiteSparse: ${msg}")
+  endif ()
+endmacro ()

 # ------------------------------------------------------------------------------
 # Get SuiteSparse component include path suffixes
@@ -122,7 +135,10 @@
     ${varname}
       "${component}"
       "${component}/Lib"
-      "lib" "lib64" "lib32"
+      "lib/x86_64-linux-gnu"
+      "lib"
+      "lib64"
+      "lib32"
   )
 endmacro ()

@@ -161,10 +177,26 @@
 _suitesparse_remove_duplicate_libraries(SuiteSparse_COMPONENTS)

 # ------------------------------------------------------------------------------
+# Status message
+if (NOT SuiteSparse_FIND_QUIETLY)
+  set(_suitesparse_find_status "Looking for SuiteSparse")
+  if (SuiteSparse_FIND_COMPONENTS)
+    set(_suitesparse_find_status "${_suitesparse_find_status} [${SuiteSparse_COMPONENTS}]")
+  endif ()
+  if (NOT SuiteSparse_FIND_REQUIRED)
+    set(_suitesparse_find_status "${_suitesparse_find_status} (optional)")
+  endif ()
+  message(STATUS "${_suitesparse_find_status}...")
+endif ()
+
+# ------------------------------------------------------------------------------
 # Find "config" and set SuiteSparse_ROOT (if unset) used to find other components
 if (NOT SuiteSparse_ROOT)
   file(TO_CMAKE_PATH "$ENV{SuiteSparse_ROOT}" SuiteSparse_ROOT)
 endif ()
+
+_suitesparse_debug_message("Hints:")
+_suitesparse_debug_message("- SuiteSparse_ROOT = ${SuiteSparse_ROOT}")

 _suitesparse_get_include_suffixes(_suitesparse_include_suffixes SuiteSparse_config)
 if (SuiteSparse_ROOT)
@@ -182,7 +214,7 @@
   if (SuiteSparse_config_INCLUDE_DIR)
     foreach (_suitesparse_include_suffix IN LISTS _suitesparse_include_suffixes)
       if (SuiteSparse_config_INCLUDE_DIR MATCHES "^(.*)/+${_suitesparse_include_suffix}/*$")
-        set(SuiteSparse_ROOT "${CMAKE_MATCH_1}")
+        string(REGEX REPLACE "/[iI]nclude" "" SuiteSparse_ROOT "${CMAKE_MATCH_1}")
         break()
       endif ()
     endforeach ()
@@ -208,14 +240,21 @@
   set(SuiteSparse_config_FOUND 0)
 endif ()

+_suitesparse_debug_message("Config (FOUND=${SuiteSparse_config_FOUND}):")
+_suitesparse_debug_message("- SuiteSparse_ROOT               = ${SuiteSparse_ROOT}")
+_suitesparse_debug_message("- SuiteSparse_LIBRARY_DIR        = ${SuiteSparse_LIBRARY_DIR}")
+_suitesparse_debug_message("- SuiteSparse_config_INCLUDE_DIR = ${SuiteSparse_config_INCLUDE_DIR}")
+_suitesparse_debug_message("- SuiteSparse_config_LIBRARY     = ${SuiteSparse_config_LIBRARY}")
+
 # ------------------------------------------------------------------------------
 # Extract version information
 if (SuiteSparse_config_FOUND)
   if (EXISTS "${SuiteSparse_config_INCLUDE_DIR}/SuiteSparse_config.h")
-    file(READ "${SuiteSparse_config_INCLUDE_DIR}/SuiteSparse_config.h" _suitesparse_config)
+    set(_suitesparse_config_file "${SuiteSparse_config_INCLUDE_DIR}/SuiteSparse_config.h")
   else ()
-    file(READ "${SuiteSparse_config_INCLUDE_DIR}/UFconfig.h" _suitesparse_config)
-  endif ()
+    set(_suitesparse_config_file "${SuiteSparse_config_INCLUDE_DIR}/UFconfig.h")
+  endif ()
+  file(READ "${_suitesparse_config_file}" _suitesparse_config)
   if (_suitesparse_config MATCHES "#define SUITESPARSE_MAIN_VERSION ([0-9]+)")
     set(SuiteSparse_VERSION_MAJOR "${CMAKE_MATCH_1}")
     if (_suitesparse_config MATCHES "#define SUITESPARSE_SUB_VERSION ([0-9]+)")
@@ -243,7 +282,15 @@
     set(SuiteSparse_VERSION_PATCH)
     set(SuiteSparse_VERSION_STRING)
   endif ()
+
+  _suitesparse_debug_message("Version information from ${_suitesparse_config_file}")
+  _suitesparse_debug_message("- SuiteSparse_VERSION_STRING = ${SuiteSparse_VERSION_STRING}")
+  _suitesparse_debug_message("- SuiteSparse_VERSION_MAJOR  = ${SuiteSparse_VERSION_MAJOR}")
+  _suitesparse_debug_message("- SuiteSparse_VERSION_MINOR  = ${SuiteSparse_VERSION_MINOR}")
+  _suitesparse_debug_message("- SuiteSparse_VERSION_PATCH  = ${SuiteSparse_VERSION_PATCH}")
+
   unset(_suitesparse_config)
+  unset(_suitesparse_config_file)
 endif ()

 # ------------------------------------------------------------------------------
@@ -293,6 +340,7 @@
     else ()
       set(SuiteSparse_${_suitesparse_component}_FOUND 0)
     endif ()
+
   endif ()
 endforeach ()

@@ -388,6 +436,12 @@
 foreach (_suitesparse_component IN LISTS SuiteSparse_COMPONENTS)
   _suitesparse_remove_duplicate_paths(SuiteSparse_${_suitesparse_component}_INCLUDE_DIRS)
   _suitesparse_remove_duplicate_libraries(SuiteSparse_${_suitesparse_component}_LIBRARIES)
+
+  _suitesparse_debug_message("${_suitesparse_component} (FOUND=${SuiteSparse_${_suitesparse_component}_FOUND}):")
+  _suitesparse_debug_message("- SuiteSparse_${_suitesparse_component}_INCLUDE_DIR  = ${SuiteSparse_${_suitesparse_component}_INCLUDE_DIR}")
+  _suitesparse_debug_message("- SuiteSparse_${_suitesparse_component}_INCLUDE_DIRS = [${SuiteSparse_${_suitesparse_component}_INCLUDE_DIRS}]")
+  _suitesparse_debug_message("- SuiteSparse_${_suitesparse_component}_LIBRARY      = ${SuiteSparse_${_suitesparse_component}_LIBRARY}")
+  _suitesparse_debug_message("- SuiteSparse_${_suitesparse_component}_LIBRARIES    = [${SuiteSparse_${_suitesparse_component}_LIBRARIES}]")
 endforeach ()

 # ------------------------------------------------------------------------------
@@ -420,6 +474,14 @@
   HANDLE_COMPONENTS
 )

+if (NOT SuiteSparse_FIND_QUIETLY)
+  if (SuiteSparse_FOUND)
+    message(STATUS "${_suitesparse_find_status}... - found v${SuiteSparse_VERSION_STRING}")
+  else ()
+    message(STATUS "${_suitesparse_find_status}... - not found")
+  endif ()
+endif ()
+
 # ------------------------------------------------------------------------------
 # Set uncached variables without "SuiteSparse_" prefix for components which
 # previously may have been installed separate from SuiteSparse and to be
@@ -471,3 +533,4 @@
 unset(_suitesparse_library_suffixes)
 unset(_suitesparse_varname_suffixes)
 unset(_suitesparse_varname_suffix)
+unset(_suitesparse_find_status)


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 11)

 # 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 07)

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


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   29)
+SET(KWSYS_DATE_STAMP_DAY   30)


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 12)

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


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -15,7 +15,7 @@
 SET(KWSYS_DATE_STAMP_YEAR  2009)

 # KWSys version date month component.  Format is MM.
-SET(KWSYS_DATE_STAMP_MONTH 11)
+SET(KWSYS_DATE_STAMP_MONTH 12)

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


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   24)
+SET(KWSYS_DATE_STAMP_DAY   25)


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   25)
+SET(KWSYS_DATE_STAMP_DAY   26)


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 04)

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


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 04)

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


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 11)

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


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 06)

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


BUG: Missing declaration of CTK depends on VTK

--- SuperBuild.cmake
+++ SuperBuild.cmake
@@ -296,6 +296,8 @@
         -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
         -DVTK_DIR:PATH=${VTK_DIR}
       INSTALL_COMMAND ""
+      DEPENDS
+        "VTK"
       )
     set( CTK_DIR "${CMAKE_BINARY_DIR}/CTK-Build" )


do not use links on Windows

do not use links on Windows

Creating a link doesn't work in CMake (strangely enough)

--- SuperBuild.cmake
+++ SuperBuild.cmake
@@ -404,7 +404,7 @@
 configure_file(env_sirf.sh.in ${SyneRBI_INSTALL}/bin/env_sirf.sh)
 configure_file(env_sirf.csh.in ${SyneRBI_INSTALL}/bin/env_sirf.csh)

-if (${CMAKE_VERSION} VERSION_LESS "3.14")
+if (${CMAKE_VERSION} VERSION_LESS "3.14" OR WIN32)
   # CREATE_LINK has been introduced in CMake 3.14
   # we create a copy instead.
   configure_file(env_sirf.sh.in ${SyneRBI_INSTALL}/bin/env_ccppetmr.sh)


CMake: Bugfix: Do not error out if a variable for a feature constraint is undefined

--- cmake/macros/macro_deal_ii_pickup_tests.cmake
+++ cmake/macros/macro_deal_ii_pickup_tests.cmake
@@ -178,19 +178,17 @@
       STRING(REGEX MATCH "([0-9]+(\\.[0-9]+)*)$" _version ${_match})

       #
-      # Valid feature?
-      #
       # We support two variables: DEAL_II_WITH_<FEATURE> and DEAL_II_<FEATURE>
       #
       SET(_variable "DEAL_II_WITH_${_feature}")
       IF(NOT DEFINED ${_variable})
         SET(_variable "DEAL_II_${_feature}")
         IF(NOT DEFINED ${_variable})
-          MESSAGE(FATAL_ERROR "
-Invalid feature constraint \"${_match}\" in file
-\"${_comparison}\":
-The feature \"DEAL_II_WITH_${_feature}\" (or \"DEAL_II_${_feature}\") does not exist.\n"
-            )
+          #
+          # If a variable is undefined, assume that we cannot configure a
+          # given test
+          #
+          SET(_define_test FALSE)
         ENDIF()
       ENDIF()


minor cleanup

minor cleanup

--- cmake_compiler_settings/cmake/gcc_flags.cmake
+++ cmake_compiler_settings/cmake/gcc_flags.cmake
@@ -7,20 +7,22 @@

 ##################################################################
 # compiler warnings, should be enabled on every project
-# unline on msvc -Wall does not enable all warnings
+# unlike msvc, -Wall does not enable all warnings

 # generic warnings
-add_compile_options(-Wall -Wextra -pedantic -Wmain -Wunreachable-code -Wunused -Wunknown-pragmas)
+add_compile_options(-Wall -Wextra -pedantic -Wmain -Wunreachable-code -Wunused -Wunknown-pragmas -Werror=return-type)

 # multiple declaration, shadowing, eval undefined identifier
-add_compile_options(-Wshadow)
-add_compile_options(-Wundef -Wredundant-decls)
+add_compile_options(-Wshadow -Wundef -Wredundant-decls)

 # class/structs and init
 add_compile_options(-Wnon-virtual-dtor -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder -Wuninitialized)
 if(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 6)
 	add_compile_options(-Werror=init-self -Werror=memset-transposed-args)
+elseif(CMAKE_CXX_COMPILER_VERSION LESSER_EQUAL 4)
+	add_compile_options(-Wno-missing-field-initializers) # otherwise S s = {}; issues warning
 endif()
+

 # switch/branches
 add_compile_options(-Wswitch-default -Wswitch-enum)
@@ -44,7 +46,9 @@
 # possible code structure problem
 add_compile_options(-Wdisabled-optimization)

-# branches
+# printf
+add_compile_options(-Werror=format)
+add_compile_options(-Werror=format-security)

 # operations on booleans
 if(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 6)
@@ -74,12 +78,6 @@
 # project structure
 add_compile_options(-Wmissing-include-dirs)

-##################################################################
-# errors
-add_compile_options(-Werror=format)
-add_compile_options(-Werror=format-security)
-add_compile_options(-Werror=return-type)
-add_compile_options(-Wno-missing-field-initializers)

 ##################################################################
 # additional debug informations
@@ -123,14 +121,15 @@
 endif()

 ##################################################################
-# mitigations (
+# mitigations
 # abort and provide some useful message instead of ignoring errors, crash at another random place or leave some vulnerability open
 option(FORTIFY "Enable fortify sources (already enabled in release mode)" OFF)
 if(FORTIFY)
 	message(" ===== Enable fortify sources (always enabled in release mode) ===== ")
 	add_definitions(-D_FORTIFY_SOURCE=2 -O2)
 endif()
-# if compiling with -O1 we should use -D_FORTIFY_SOURCE=1...
+# add check if compiling with -O1, in that case we should use -D_FORTIFY_SOURCE=1...
 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_FORTIFY_SOURCE=2") # =1 when using -O1..

 # add option for relro, pie,
+


Added AMD APP SDK paths to FindOpenCL.cmake.

The AMD APP SDK include folder has a CL folder and a GL folder, so the
extra "CL" suffix is required. Also, CMake was only finding the 32-bit
OpenCL.lib, so "lib/x86_64" is needed as well.

--- cmake/FindOpenCL.cmake
+++ cmake/FindOpenCL.cmake
@@ -88,6 +88,7 @@
     /usr/include/OpenCL
   PATH_SUFFIXES
     include
+    include/CL
     OpenCL/common/inc
     OpenCL
     "AMD APP/include")
@@ -110,6 +111,7 @@
     ${OpenCL_INCLUDE_DIR}
   PATH_SUFFIXES
     include
+    include/CL
     OpenCL/common/inc
     "AMD APP/include")

@@ -122,7 +124,6 @@
   NAMES OpenCL
   PATHS
     ENV "PROGRAMFILES(X86)"
-    ENV "PROGRAMFILES(X86)"
     ENV AMDAPPSDKROOT
     ENV INTELOCLSDKROOT
     ENV CUDA_PATH
@@ -133,6 +134,7 @@
     /usr/lib/i386-linux-gnu
   PATH_SUFFIXES
     "AMD APP/lib/x86"
+    lib/x86_64
     lib/x86
     lib/Win32


BUG: Must point to proper Slicer_DIR

BUG: Must point to proper Slicer_DIR

--- Eden_Kitware_TubeTK_Slicer.cmake
+++ Eden_Kitware_TubeTK_Slicer.cmake
@@ -68,7 +68,7 @@
 #
 set( TubeTK_BUILD_USING_SLICER ON )
 #if TubeTK_BUILD_USING_SLICER is ON, you need to fix the following line
-set( Slicer_DIR "C:/src/Slicer-${SITE_BUILD_TYPE}" )
+set( Slicer_DIR "C:/src/Slicer-${SITE_BUILD_TYPE}/Slicer-build" )

 set( TubeTK_USE_BOOST OFF )
 #if TubeTK_USE_BOOST is ON, you need to fix the following line


compilation failure on Solaris

compilation failure on Solaris

--- config.h.cmake
+++ config.h.cmake
@@ -81,6 +81,7 @@
 #cmakedefine HAVE_SYS_SELECT_H 1
 #cmakedefine HAVE_SYS_SHM_H 1
 #cmakedefine HAVE_SYS_SOCKET_H 1
+#cmakedefine HAVE_SYS_SOCKIO_H 1
 #cmakedefine HAVE_SYS_STAT_H 1
 #cmakedefine HAVE_SYS_STREAM_H 1
 #cmakedefine HAVE_SYS_TERMCAP_H 1


cmake: set CMAKE_CXX_FLAGS in FBCompilerSettingsUnix.cmake

Summary:
It looks like the various CMAKE_CXX_FLAGS_* are simply ineffective, and I'm not
sure why, setting CMAKE_CXX_FLAGS does work though, and CMake appears to add
some release/debug flags to it when generating Ninja files.

Reviewed By: fanzeyi

Differential Revision: D27862117

fbshipit-source-id: a89f6182b5bae9a087f8fcfd4c5f9526f91e2adf

--- build/fbcode_builder/CMake/FBCompilerSettingsUnix.cmake
+++ build/fbcode_builder/CMake/FBCompilerSettingsUnix.cmake
@@ -6,6 +6,4 @@
 # to these shared compiler settings in order to avoid accidentally
 # breaking a build in another project!

-set(CMAKE_CXX_FLAGS_COMMON "-g -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations")
-set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CMAKE_CXX_FLAGS_COMMON}")
-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_COMMON} -O3")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations")


CastXML 0.4.7

CastXML 0.4.7

--- src/Version.cmake
+++ src/Version.cmake
@@ -1,7 +1,7 @@
 # CastXML version number components.
 set(CastXML_VERSION_MAJOR 0)
 set(CastXML_VERSION_MINOR 4)
-set(CastXML_VERSION_PATCH 6)
+set(CastXML_VERSION_PATCH 7)
 set(CastXML_VERSION_RC 0)
 set(CastXML_VERSION_IS_DIRTY 0)


rosbuild2 taking shape.

rosbuild2 taking shape.

--- tools/rospack/rosbuild.cmake
+++ tools/rospack/rosbuild.cmake
@@ -1,87 +1,33 @@
 include(${CMAKE_CURRENT_BINARY_DIR}/package.cmake)
-# We can't use rosbuild/rosbuild.cmake here, because rosbuild.cmake
-# requires rospack, and we're in the process of building rospack.
-set(CMAKE_INSTALL_PREFIX /tmp/rospack)
-#set(CMAKE_INSTALL_RPATH_USE_LINK_RPATH true)
-#set(CMAKE_SKIP_BUILD_RPATH true)
-set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+
 include_directories(include ${PROJECT_SOURCE_DIR})
-# Include the rosbuild's rosconfig.cmake, which includes logic for checking
-# for $ROS_ROOT/rosconfig.cmake, where the user may have adjusted the build
-# configuration.  In particular, that's where static vs. shared is set.
+
 add_definitions(-DTIXML_USE_STL)
-set(rospack_sources rospack.cpp tinyxml-2.5.3/tinystr.cpp tinyxml-2.5.3/tinyxml.cpp tinyxml-2.5.3/tinyxmlparser.cpp tinyxml-2.5.3/tinyxmlerror.cpp)
+
+set(rospack_sources rospack.cpp
+  tinyxml-2.5.3/tinystr.cpp
+  tinyxml-2.5.3/tinyxml.cpp
+  tinyxml-2.5.3/tinyxmlparser.cpp
+  tinyxml-2.5.3/tinyxmlerror.cpp)
+
 set(rosstack_sources rosstack.cpp)
-# Here we duplicate a bit of the logic in rosbuild/public.cmake.
-if(NOT ROS_BUILD_STATIC_LIBS AND NOT ROS_BUILD_SHARED_LIBS)
-  message(FATAL_ERROR "Neithersharednorstaticlibrariesareenabled.PleaseseteitherROS_BUILD_STATIC_LIBSorROS_BUILD_SHARED_LIBStotrue.")
-endif(NOT ROS_BUILD_STATIC_LIBS AND NOT ROS_BUILD_SHARED_LIBS)
-if(ROS_BUILD_STATIC_EXES AND ROS_BUILD_SHARED_LIBS)
-  message(FATAL_ERROR "Staticexecutablesarerequested,butsoaresharedlibs.Thisconfigurationisunsupported.PleaseeithersetROS_BUILD_SHARED_LIBStofalseorsetROS_BUILD_STATIC_EXEStofalse.")
-endif(ROS_BUILD_STATIC_EXES AND ROS_BUILD_SHARED_LIBS)
-if(ROS_BUILD_SHARED_LIBS)
-  # If shared libs are being built, they get the default CMake target name
-  # No matter what, the libraries get the same name in the end.
-  add_library(rospack SHARED ${rospack_sources})
-  add_library(rosstack SHARED ${rosstack_sources})
-  # Prevent deletion of existing lib of same name
-  set_target_properties(rospack PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-  set_target_properties(rosstack PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-endif(ROS_BUILD_SHARED_LIBS)
-if(ROS_BUILD_STATIC_LIBS)
-  add_definitions("-DROS_STATIC")
-  # If we're only building static libs, then they get the default CMake
-  # target name.
-  if(NOT ROS_BUILD_SHARED_LIBS)
-    set(static_rospack "rospack")
-    set(static_rosstack "rosstack")
-  else(NOT ROS_BUILD_SHARED_LIBS)
-    set(static_rospack "rospack-static")
-    set(static_rosstack "rosstack-static")
-  endif(NOT ROS_BUILD_SHARED_LIBS)
-  add_library(${static_rospack} STATIC ${rospack_sources})
-  add_library(${static_rosstack} STATIC ${rosstack_sources})
-  # Set output name to be the same as shared lib (may not work on Windows)
-  set_target_properties(${static_rospack} PROPERTIES OUTPUT_NAME "rospack")
-  set_target_properties(${static_rosstack} PROPERTIES OUTPUT_NAME "rosstack")
-  # Also add -fPIC, because CMake leaves it out when building static
-  # libs, even though it's necessary on 64-bit machines for linking this
-  # lib against shared libs downstream.
-  set_target_properties(${static_rospack} PROPERTIES COMPILE_FLAGS "-fPIC")
-  set_target_properties(${static_rosstack} PROPERTIES COMPILE_FLAGS "-fPIC")
-  # Prevent deletion of existing lib of same name
-  set_target_properties(${static_rospack} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-  set_target_properties(${static_rosstack} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-endif(ROS_BUILD_STATIC_LIBS)
-add_executable(rospackexe main.cpp)
+
+rosbuild_add_library(rospack ${rospack_sources})
+rosbuild_add_library(rosstack ${rosstack_sources})
+
+rosbuild_add_executable(rospackexe main.cpp)
 set_target_properties(rospackexe PROPERTIES OUTPUT_NAME rospack)
 target_link_libraries(rosstack rospack)
-add_executable(rosstackexe rosstack_main.cpp)
+
+rosbuild_add_executable(rosstackexe rosstack_main.cpp)
 set_target_properties(rosstackexe PROPERTIES OUTPUT_NAME rosstack)
 target_link_libraries(rospackexe rospack)
 target_link_libraries(rosstackexe rosstack rospack)
-if(ROS_BUILD_STATIC_EXES AND ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-  # This will probably only work on Linux.  The LINK_SEARCH_END_STATIC
-  # property should be sufficient, but it doesn't appear to work
-  # properly.
-  set_target_properties(rospackexe PROPERTIES LINK_FLAGS "-static-libgcc-Wl,-Bstatic")
-  set_target_properties(rosstackexe PROPERTIES LINK_FLAGS "-static-libgcc-Wl,-Bstatic")
-endif(ROS_BUILD_STATIC_EXES AND ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-#install(TARGETS rospack rosstack rospackexe rosstackexe
-#        RUNTIME DESTINATION bin
-#        LIBRARY DESTINATION lib)
-#install(FILES include/rospack/rospack.h
-#        DESTINATION include/rospack)
-# Prevent warnings about duplicate definition of the targets mentioned
-# below
-if(COMMAND cmake_policy)
-  # Logical target names must be globally unique.
-  cmake_policy(SET CMP0002 OLD)
-endif(COMMAND cmake_policy)
-# These targets might be called by rosmakeall
-add_custom_target(test)
-add_custom_target(tests)
-add_custom_target(test-results)
-add_custom_target(test-future)
-add_custom_target(gcoverage)

+install(TARGETS rospack rosstack rospackexe rosstackexe
+        RUNTIME DESTINATION bin
+        LIBRARY DESTINATION lib)
+
+install(FILES include/rospack/rospack.h
+        DESTINATION include/rospack)
+


require boost 1.37+ to build

require boost 1.37+ to build

--- ConfigureChecks.cmake
+++ ConfigureChecks.cmake
@@ -34,9 +34,7 @@

 # This is required to enable the new version
 SET(Boost_ADDITIONAL_VERSIONS 1.39 1.39.0 1.38 1.38.0 1.37 1.37.0)
-# find unit_test_framework in boost >= 1.35, it's optional and only
-# used in unit testcases
-FIND_PACKAGE(Boost 1.35.0)
+FIND_PACKAGE(Boost 1.37)

 ##################################################
 # Threads


-BUG: git clone needs an empty directory, so the binary directory for testing cannot be put at the same level as the src directory (as we usually do) in the ctest framework, because the binary directory is created first.

--- Testing/Dashboard/pxDashboardCommon.cmake
+++ Testing/Dashboard/pxDashboardCommon.cmake
@@ -68,13 +68,21 @@
   set(dashboard_git_branch master)
 endif()

+# Select GIT directory
+if( NOT DEFINED CTEST_ITKTOOLS_DIRECTORY )
+  set( CTEST_ITKTOOLS_DIRECTORY "${CTEST_DASHBOARD_ROOT}/ITKTools" )
+endif()

 # Select a source directory name.
 if( NOT DEFINED CTEST_SOURCE_DIRECTORY )
-  set( CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/src" )
+  set( CTEST_SOURCE_DIRECTORY "${CTEST_GIT_DIRECTORY}/src" )
 endif()

 # Select a build directory name.
+# Note: We cannot put the bin directory on the same level as the
+# src directory (as we recommend in the README.md), because the
+# bin directory is created before git clone is called, and git clone
+# demands an empty directory.
 if( NOT DEFINED CTEST_BINARY_DIRECTORY )
   set( CTEST_BINARY_DIRECTORY ${CTEST_DASHBOARD_ROOT}/bin )
 endif()
@@ -121,7 +129,7 @@

   # Assume git version 1.6.5 or higher, which has git clone -b option.
   set( CTEST_CHECKOUT_COMMAND
-     "\"${CTEST_GIT_COMMAND}\" clone -b ${dashboard_git_branch} \"${dashboard_git_url}\" \"${CTEST_DASHBOARD_ROOT}\"" )
+     "\"${CTEST_GIT_COMMAND}\" clone -b ${dashboard_git_branch} \"${dashboard_git_url}\" \"${CTEST_ITKTOOLS_DIRECTORY\"" )

   # CTest delayed initialization is broken, so we copy the
   # CTestConfig.cmake info here.
@@ -155,6 +163,8 @@
 foreach( v
   CTEST_SITE
   CTEST_BUILD_NAME
+  CTEST_DASHBOARD_ROOT
+  CTEST_ITKTOOLS_DIRECTORY
   CTEST_SOURCE_DIRECTORY
   CTEST_BINARY_DIRECTORY
   CTEST_CMAKE_GENERATOR
@@ -220,7 +230,7 @@
     endif()

     # Check for changes
-    ctest_update( SOURCE ${CTEST_DASHBOARD_ROOT} RETURN_VALUE res )
+    ctest_update( SOURCE ${CTEST_ITKTOOLS_DIRECTORY} RETURN_VALUE res )
     message( "Found ${res} changed files" )
     # SK: Only do initial checkout at the first iteration.
     # After that, the CHECKOUT_COMMAND has to be removed, otherwise
@@ -245,7 +255,7 @@
 else()
   write_cache()
   ctest_start( ${dashboard_model} )
-  ctest_update( SOURCE ${CTEST_DASHBOARD_ROOT} )
+  ctest_update( SOURCE ${CTEST_ITKTOOLS_DIRECTORY )
   # run cmake twice; this seems to be necessary, otherwise the
   # KNN lib is not built
   #ctest_configure()


fix build with CMAKE_INSTALL_PREFIX set on OS X

--- CMake/Utils/MyGUIConfigTargets.cmake
+++ CMake/Utils/MyGUIConfigTargets.cmake
@@ -23,7 +23,11 @@
 	set(MYGUI_PLUGIN_PATH "/MYGUI")
 endif ()
 if (APPLE)
-	set(MYGUI_FRAMEWORK_PATH /Library/Frameworks)
+  if (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+    set(MYGUI_FRAMEWORK_PATH ${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_BUILD_TYPE})
+  else ()
+    set(MYGUI_FRAMEWORK_PATH /Library/Frameworks)
+  endif ()
 endif ()

 # create vcproj.user file for Visual Studio to set debug working directory


Update FULL_FUI macro and add SALOME_GUI_MODE macro

--- adm_local/cmake_files/FindSalomeGUI.cmake
+++ adm_local/cmake_files/FindSalomeGUI.cmake
@@ -42,29 +42,43 @@
 ENDFOREACH()

 #----------------------------------------------------------------------------
-# FULL_GUI is a macro useful for determining whether a GUI module
-# builded in full mode
+# SALOME_GUI_WITH_CORBA is a macro useful for determining whether a SALOME GUI module
+# is built in not light mode (with CORBA)
+#----------------------------------------------------------------------------
+MACRO(SALOME_GUI_WITH_CORBA)
+  IF(SALOME_GUI_LIGHT_ONLY)
+    MESSAGE(FATAL_ERROR "\nWe absolutely need a Salome GUI module with CORBA.\nPlease set option SALOME_LIGHT_ONLY to OFF when building GUI module.")
+  ENDIF()
+ENDMACRO(SALOME_GUI_WITH_CORBA)
+
+#----------------------------------------------------------------------------
+# FULL_GUI is a macro useful for determining whether a GUI module
+# builded in full mode
+#----------------------------------------------------------------------------
+MACRO(FULL_GUI)
+  SET(_options)
+  LIST(APPEND _options SALOME_USE_OCCVIEWER SALOME_USE_GLVIEWER SALOME_USE_VTKVIEWER
+              SALOME_USE_PLOT2DVIEWER SALOME_USE_GRAPHICSVIEW SALOME_USE_QXGRAPHVIEWER
+              SALOME_USE_SALOMEOBJECT SALOME_USE_PYCONSOLE)
+  SALOME_GUI_MODE(${_options})
+ENDMACRO(FULL_GUI)
+
+#----------------------------------------------------------------------------
+# SALOME_GUI_MODE is a macro useful for determining whether a GUI module
+# builded in particular mode
 #----------------------------------------------------------------------------
 #########################################################################
 # FULL_GUI()
 #
-# USAGE: FULL_GUI(with_corba)
+# USAGE: FULL_GUI(_options)
 #
 # ARGUMENTS:
-#   with_corba [input] TRUE or FALSE - use CORBA for building module or no.
+#   _options [input] List - The list of CMake options given to SALOME GUI
 #
-MACRO(FULL_GUI with_corba)
-  SET(_options)
-  IF(${with_corba} AND ${SALOME_GUI_LIGHT_ONLY})
-    SET(_corba_message "We absolutely need a Salome GUI module with CORBA.\nPlease set option SALOME_LIGHT_ONLY to OFF when building GUI module.")
-  ENDIF()
-
-  LIST(APPEND _options SALOME_USE_OCCVIEWER SALOME_USE_GLVIEWER SALOME_USE_VTKVIEWER
-              SALOME_USE_PLOT2DVIEWER SALOME_USE_GRAPHICSVIEW SALOME_USE_QXGRAPHVIEWER
-              SALOME_USE_SALOMEOBJECT SALOME_USE_PYCONSOLE)
-
+MACRO(SALOME_GUI_MODE _options)
+  MESSAGE(STATUS "Checking status of GUI options ${_options}")
   SET(_message)
-  FOREACH(_option ${_options})
+  FOREACH(_option ${_options})
     IF(NOT ${_option})
       LIST(APPEND _message ${_option})
     ENDIF()
@@ -79,5 +93,4 @@
   ELSEIF(_corba_message)
     MESSAGE(FATAL_ERROR "${_corba_message}")
   ENDIF()
-
-ENDMACRO(FULL_GUI)
+ENDMACRO(SALOME_GUI_MODE)


Changed config.h.cmake to allow static build for linux also.

--- include/zorba/config.h.cmake
+++ include/zorba/config.h.cmake
@@ -96,26 +96,21 @@
 /* to use minimal store or simplestore*/
 #cmakedefine  ZORBA_MINIMAL_STORE

-/* Windows MSVC DLL */
-#cmakedefine ZORBA_WIN_DLL
+#ifndef BUILDING_ZORBA_STATIC

 #if defined WIN32 || defined CYGWIN
-  #if ! defined (BUILDING_ZORBA_STATIC)
-    #if defined (zorba_EXPORTS)
-      #ifdef __GNUC__
-        #define ZORBA_DLL_PUBLIC __attribute__((dllexport))
-      #else
-        #define ZORBA_DLL_PUBLIC __declspec(dllexport)
-      #endif
+  #if defined (zorba_EXPORTS)
+    #ifdef __GNUC__
+      #define ZORBA_DLL_PUBLIC __attribute__((dllexport))
     #else
-      #ifdef __GNUC__
-        #define ZORBA_DLL_PUBLIC __attribute__((dllimport))
-      #else
-        #define ZORBA_DLL_PUBLIC __declspec(dllimport)
-      #endif
+      #define ZORBA_DLL_PUBLIC __declspec(dllexport)
     #endif
   #else
-    #define ZORBA_DLL_PUBLIC
+    #ifdef __GNUC__
+      #define ZORBA_DLL_PUBLIC __attribute__((dllimport))
+    #else
+      #define ZORBA_DLL_PUBLIC __declspec(dllimport)
+    #endif
   #endif
   #define ZORBA_DLL_LOCAL
 #else
@@ -128,6 +123,11 @@
   #endif
 #endif

+#else//BUILDING_ZORBA_STATIC
+  #define ZORBA_DLL_PUBLIC
+  #define ZORBA_DLL_LOCAL
+#endif
+
 #if defined WIN32
 #  pragma warning( disable: 4251 )
 #endif


Use find_package_handle_standard_args correctly

First parameter is name of the package

--- cmake/FindFOX.cmake
+++ cmake/FindFOX.cmake
@@ -54,7 +54,8 @@
   set(FOX_LIBRARIES ${FOX_LIBRARY})
 endif()

-find_package_handle_standard_args(FOX DEFAULT_MSG
+find_package_handle_standard_args(FOX
+  FOX DEFAULT_MSG
   FOX_INCLUDE_DIR
   FOX_LIBRARY
 )


Update FindLua.cmake

Update FindLua.cmake

--- cmake/FindLua.cmake
+++ cmake/FindLua.cmake
@@ -56,6 +56,7 @@
         /opt
         /usr/local
         /usr/bin
+        /usr/bin/lua
         C:/Lua
         )

@@ -72,6 +73,8 @@
         /opt/csw
         /opt
         /usr/local
+        /usr/bin
+        /usr/bin/lua
         )

 if(LUA_LIBRARY)


/proc/cpuinfo doesn't contain "sse3"

/proc/cpuinfo doesn't contain "sse3"

--- cmake/FindSSE.cmake
+++ cmake/FindSSE.cmake
@@ -4,21 +4,21 @@
 IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
    EXEC_PROGRAM(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO)

+   # /proc/cpuinfo apparently omits sse3 :(
    STRING(REGEX REPLACE "^.*[^s](sse3).*$" "\\1" SSE_THERE ${CPUINFO})
    STRING(COMPARE EQUAL "sse3" "${SSE_THERE}" SSE3_TRUE)
    IF (NOT SSE3_TRUE)
       STRING(REGEX REPLACE "^.*(T2300).*$" "\\1" SSE_THERE ${CPUINFO})
       STRING(COMPARE EQUAL "T2300" "${SSE_THERE}" SSE3_TRUE)
-      MESSAGE(STATUS "${SSE3_TRUE}")
    ENDIF (NOT SSE3_TRUE)
-   IF (SSE3_TRUE)
-      set(SSE3_FOUND true CACHE BOOL "SSE3 available on host")
-   ELSE (SSE3_TRUE)
-      set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
-   ENDIF (SSE3_TRUE)

    STRING(REGEX REPLACE "^.*(ssse3).*$" "\\1" SSE_THERE ${CPUINFO})
    STRING(COMPARE EQUAL "ssse3" "${SSE_THERE}" SSSE3_TRUE)
+   IF (SSE3_TRUE OR SSSE3_TRUE)
+      set(SSE3_FOUND true CACHE BOOL "SSE3 available on host")
+   ELSE (SSE3_TRUE OR SSSE3_TRUE)
+      set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
+   ENDIF (SSE3_TRUE OR SSSE3_TRUE)
    IF (SSSE3_TRUE)
       set(SSSE3_FOUND true CACHE BOOL "SSSE3 available on host")
    ELSE (SSSE3_TRUE)


Add x86_64-linux-gnu to TBB_PATH_SUFFIXES (#252)

On Ubuntu 16.04 systems libtbb is installed into
/usr/lib/x86_64-linux-gnu so add that to TBB_PATH_SUFFIXES
to ensure it get's picked up.

Closes #249
Signed-off-by: Thanh Ha <09ea4d3a79c8bee41a16519f6a431f6bc0fd8d6f@linuxfoundation.org>

--- cmake/FindTBB.cmake
+++ cmake/FindTBB.cmake
@@ -95,9 +95,9 @@
 		# MESSAGE(STATUS ${GCC_MAJOR})
 		# MESSAGE(STATUS ${GCC_MINOR})
 		# MESSAGE ( "TBB CMAKE_CXX_COMPILER_VERSION = ${CMAKE_CXX_COMPILER_VERSION}")
-		SET ( TBB_PATH_SUFFIXES intel64/gcc${GCC_MAJOR}.${GCC_MINOR} )
+		SET ( TBB_PATH_SUFFIXES intel64/gcc${GCC_MAJOR}.${GCC_MINOR} x86_64-linux-gnu )
 	  ELSE ()
-		SET ( TBB_PATH_SUFFIXES intel64/gcc4.4 )
+		SET ( TBB_PATH_SUFFIXES intel64/gcc4.4 x86_64-linux-gnu )
 	  ENDIF ()
 	ELSE ()
       MESSAGE ( FATAL_ERROR "Can't handle non-GCC compiler")


created windows installer

created windows installer

--- cmake/Package.cmake
+++ cmake/Package.cmake
@@ -10,9 +10,37 @@
 set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
 set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
 set(CPACK_PACKAGE_FILE_NAME "fast")
+set(CPACK_COMPONENT_FAST_REQUIRED ON)
+
+

 if(WIN32 AND NOT UNIX)
     ## Windows
+    set(CPACK_GENERATOR "NSIS")
+    set(CPACK_PACKAGE_FILE_NAME "fast-windows-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
+    set(CPACK_PACKAGE_INSTALL_DIRECTORY "FAST")
+    set(CPACK_NSIS_MUI_HEADERIMAGE ${PROJECT_SOURCE_DIR}/doc/images/fast_icon.png)
+    set(CPACK_NSIS_MODIFY_PATH ON)
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/data/
+        DESTINATION fast/data
+        COMPONENT data
+        EXCLUDE_FROM_ALL
+    )
+
+    set(CPACK_COMPONENTS_ALL fast data)
+    set(CPACK_COMPONENT_FAST_DISPLAY_NAME "FAST")
+    set(CPACK_COMPONENT_FAST_DESCRIPTION "FAST framework: executables, examples, libraries and headers.")
+    include(CPack) # Must be before cpack_ macros
+    cpack_add_component(data
+      DISPLAY_NAME "Test and example data (~2GB to download)"
+      DESCRIPTION "This medical data is required to run tests and examples in FAST. The data will be downloaded from the internet (~2GB). It can also be downloaded manually from http://www.idi.ntnu.no/~smistad/FAST_Test_Data.zip"
+      DOWNLOADED
+      ARCHIVE_FILE FAST_Test_Data_install.zip
+    )
+
+    cpack_configure_downloads("http://fast.eriksmistad.no/download/" ADD_REMOVE)
+
+
 else()
     ## UNIX

@@ -52,6 +80,5 @@

     set(CPACK_DEBIAN_FAST_FILE_NAME "fast_${DISTRO_NAME}${DISTRO_VERSION}_${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.deb")
     set(CPACK_DEBIAN_FAST_PACKAGE_NAME "fast")
-
+    include(CPack)
 endif()
-include(CPack)


only deps mklml so, do not need link it

only deps mklml so, do not need link it

--- cmake/generic.cmake
+++ cmake/generic.cmake
@@ -194,6 +194,14 @@
       if("${cc_library_DEPS};" MATCHES "warpctc;")
         list(REMOVE_ITEM cc_library_DEPS warpctc)
         add_dependencies(${TARGET_NAME} warpctc)
+      endif()
+      # Only deps libmklml.so, not link
+      if("${cc_library_DEPS};" MATCHES "mklml;")
+        list(REMOVE_ITEM cc_library_DEPS mklml)
+        if(NOT "${TARGET_NAME}" MATCHES "dynload_mklml")
+          list(APPEND cc_library_DEPS dynload_mklml)
+        endif()
+        add_dependencies(${TARGET_NAME} mklml)
       endif()
       target_link_libraries(${TARGET_NAME} ${cc_library_DEPS})
       add_dependencies(${TARGET_NAME} ${cc_library_DEPS})


added clawpack3 option back in

added clawpack3 option back in

--- cmake/options.cmake
+++ cmake/options.cmake
@@ -28,6 +28,11 @@
   set(clawpack3_46 ON)
 endif(clawpack)

+if(clawpack3)
+  set(clawpatch ON)
+  set(clawpack3_46 ON)
+endif(clawpack)
+
 if(geoclaw)
   set(clawpatch ON)
 endif(geoclaw)


Relax router effort when creating the place delay matrix.

Signed-off-by: Keith Rothman <1bc19627a439baf17510dc2d0b2d250c96d445a5@users.noreply.github.com>

--- xc7/make/device_define.cmake
+++ xc7/make/device_define.cmake
@@ -165,8 +165,8 @@
         --disable_errors check_unbuffered_edges:check_route:check_place
         --suppress_warnings sum_pin_class:check_unbuffered_edges:load_rr_indexed_data_T_values:check_rr_node:trans_per_R
         --route_chan_width 500
-        --astar_fac 0.75
-        --bb_factor 100
+        --astar_fac 1.0
+        --bb_factor 10
         --allowed_tiles_for_delay_model BLK-TL-SLICEL,BLK-TL-SLICEM
         --lookahead_search_locations "${LOC_STR}"
       )


Fix for conc-65:   Apples libiconv doesn't provide libiconv_open so we need to link against   the macports library instead

--- cmake/FindIconv.cmake
+++ cmake/FindIconv.cmake
@@ -5,9 +5,21 @@
   set(ICONV_FIND_QUIETLY TRUE)
 endif (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)

-find_path(ICONV_INCLUDE_DIR iconv.h)
+IF(APPLE)
+  find_path(ICONV_INCLUDE_DIR iconv.h PATHS
+            /opt/local/include/
+            NO_CMAKE_SYSTEM_PATH)
+ELSE()
+  find_path(ICONV_INCLUDE_DIR iconv.h)
+ENDIF()

-find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
+IF(APPLE)
+  find_library(ICONV_LIBRARIES NAMES iconv libiconv c PATHS
+               /opt/local/lib/
+               NO_CMAKE_SYSTEM_PATH)
+ELSE()
+  find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
+ENDIF()

 if (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
    set (ICONV_FOUND TRUE)


Fix path

Fix path

--- cmake/FindImGui.cmake
+++ cmake/FindImGui.cmake
@@ -26,9 +26,9 @@
 set(IMGUI_SOURCES
   ${IMGUI_INCLUDE_DIR}/imgui.cpp
   ${IMGUI_INCLUDE_DIR}/imgui_draw.cpp
+  ${IMGUI_INCLUDE_DIR}/imgui_tables.cpp
   ${IMGUI_INCLUDE_DIR}/imgui_widgets.cpp
   ${IMGUI_INCLUDE_DIR}/misc/cpp/imgui_stdlib.cpp
-  ${IMGUI_INCLUDE_DIR}/misc/cpp/imgui_tables.cpp
 )

 set(IMGUI_DEMO_SOURCES