- bumped FOTS snapshot to May 2nd - newly added test-case "fn-substring-31" passing - "FOAR0002-5" used to report 'wrongError' now passing after fixes in FOTS

--- test/fots/ImportFOTS.cmake
+++ test/fots/ImportFOTS.cmake
@@ -19,7 +19,7 @@

 # Change this to publish updated FOTS archives
-SET (FOTS_ARCHIVE "FOTS_010513.tgz")
+SET (FOTS_ARCHIVE "FOTS_020513.tgz")

 # Change this to modify which elements in FOTS driver results are output
 # as CDATA


Fix Boost variable usage, Boost is in lower case

--- CMake/Dependencies.cmake
+++ CMake/Dependencies.cmake
@@ -168,7 +168,7 @@
   ${CEGUI_INCLUDE_DIRS}
   ${OIS_INCLUDE_DIRS}
   ${Cg_INCLUDE_DIRS}
-  ${BOOST_INCLUDE_DIRS}
+  ${Boost_INCLUDE_DIRS}
   ${X11_INCLUDE_DIR}
   ${DirectX_INCLUDE_DIRS}
   ${CppUnit_INCLUDE_DIRS}
@@ -178,7 +178,7 @@
 link_directories(
   ${OPENGL_LIBRARY_DIRS}
   ${Cg_LIBRARY_DIRS}
-  ${BOOST_LIBRARY_DIRS}
+  ${Boost_LIBRARY_DIRS}
   ${X11_LIBRARY_DIRS}
   ${DirectX_LIBRARY_DIRS}
   ${CppUnit_LIBRARY_DIRS}


CMake: fix incomplete zlib update

CMake: fix incomplete zlib update

--- CMake/Dependencies.cmake
+++ CMake/Dependencies.cmake
@@ -135,13 +135,13 @@
           ${PROJECT_BINARY_DIR}/zlib-1.2.13.tar.gz
           EXPECTED_HASH SHA256=b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30)
       execute_process(COMMAND ${CMAKE_COMMAND}
-          -E tar xf zlib-1.2.12.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+          -E tar xf zlib-1.2.13.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
       execute_process(COMMAND ${BUILD_COMMAND_COMMON}
           -DBUILD_SHARED_LIBS=${OGREDEPS_SHARED}
-          ${PROJECT_BINARY_DIR}/zlib-1.2.12
-          WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/zlib-1.2.12)
+          ${PROJECT_BINARY_DIR}/zlib-1.2.13
+          WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/zlib-1.2.13)
       execute_process(COMMAND ${CMAKE_COMMAND}
-          --build ${PROJECT_BINARY_DIR}/zlib-1.2.12 ${BUILD_COMMAND_OPTS})
+          --build ${PROJECT_BINARY_DIR}/zlib-1.2.13 ${BUILD_COMMAND_OPTS})

       message(STATUS "Building Assimp")
       file(DOWNLOAD


ENH: ExternalData: Allow DATA{} syntax to reference directories

Use a trailing slash to reference a directory.  Require that a list
of associated files be specified to select from within the directory.
One may simply use DATA{Dir/,REGEX:.*} to reference all files but
get a directory passed on the command line.

Change-Id: I711edb9da15dd7ff5d28d01b6a7d41eb99d3337f

--- CMake/ExternalData.cmake
+++ CMake/ExternalData.cmake
@@ -96,6 +96,14 @@
 #   DATA{MyData/MyFrames00.png,REGEX:MyFrames[0-9]+\\.png} # Series
 # will pass MyInput.mha and MyFrames00.png on the command line but ensure
 # that the associated files are present next to them.
+#
+# The DATA{} syntax may reference a directory using a trailing slash and a
+# list of associated files.  The form DATA{<name>/,<opt1>,<opt2>,...} adds
+# rules to fetch any files in the directory that match one of the associated
+# file options.  For example, the argument DATA{MyDataDir/,REGEX:.*} will pass
+# the full path to a MyDataDir directory on the command line and ensure that
+# the directory contains files corresponding to every file or content link in
+# the MyDataDir source directory.
 #
 # The variable ExternalData_LINK_CONTENT may be set to the name of a supported
 # hash algorithm to enable automatic conversion of real data files referenced
@@ -339,11 +347,11 @@
   list(GET options 0 data)
   list(REMOVE_AT options 0)

-  # Reject trailing slashes.
-  if("x${data}" MATCHES "[/\\]$")
-    message(FATAL_ERROR "Data file reference in argument\n"
-      "  ${arg}\n"
-      "may not end in a slash!")
+  # Interpret trailing slashes as directories.
+  set(data_is_directory 0)
+  if("x${data}" MATCHES "^x(.*)([/\\])$")
+    set(data_is_directory 1)
+    set(data "${CMAKE_MATCH_1}")
   endif()

   # Convert to full path.
@@ -365,6 +373,13 @@
       "does not lie under the top-level source directory\n"
       "  ${top_src}\n")
   endif()
+  if(data_is_directory AND NOT IS_DIRECTORY "${top_src}/${reldata}")
+    message(FATAL_ERROR "Data directory referenced by argument\n"
+      "  ${arg}\n"
+      "corresponds to source tree path\n"
+      "  ${reldata}\n"
+      "that does not exist as a directory!")
+  endif()
   if(NOT ExternalData_BINARY_ROOT)
     set(ExternalData_BINARY_ROOT "${CMAKE_BINARY_DIR}")
   endif()
@@ -381,7 +396,7 @@

   set(external "") # Entries external to the source tree.
   set(internal "") # Entries internal to the source tree.
-  set(have_original 0)
+  set(have_original ${data_is_directory})

   # Process options.
   set(series_option "")
@@ -405,10 +420,22 @@
   endforeach()

   if(series_option)
+    if(data_is_directory)
+      message(FATAL_ERROR "Series option \"${series_option}\" not allowed with directories.")
+    endif()
+    if(associated_files OR associated_regex)
+      message(FATAL_ERROR "Series option \"${series_option}\" not allowed with associated files.")
+    endif()
     # Load a whole file series.
     _ExternalData_arg_series()
+  elseif(data_is_directory)
     if(associated_files OR associated_regex)
-      message(FATAL_ERROR "Series option \"${series_option}\" not allowed with associated files.")
+      # Load listed/matching associated files in the directory.
+      _ExternalData_arg_associated()
+    else()
+      message(FATAL_ERROR "Data directory referenced by argument\n"
+        "  ${arg}\n"
+        "must list associated files.")
     endif()
   else()
     # Load the named data file.
@@ -442,7 +469,11 @@

 macro(_ExternalData_arg_associated)
   # Associated files lie in the same directory.
-  get_filename_component(reldir "${reldata}" PATH)
+  if(data_is_directory)
+    set(reldir "${reldata}")
+  else()
+    get_filename_component(reldir "${reldata}" PATH)
+  endif()
   if(reldir)
     set(reldir "${reldir}/")
   endif()


Use CTK with fixes for Qt 4.6 support.

Use CTK with fixes for Qt 4.6 support.

--- CMakeExternals/CTK.cmake
+++ CMakeExternals/CTK.cmake
@@ -15,7 +15,7 @@

   if(NOT DEFINED CTK_DIR)

-    set(revision_tag ee445fea)
+    set(revision_tag f8d63311)
     #IF(${proj}_REVISION_TAG)
     #  SET(revision_tag ${${proj}_REVISION_TAG})
     #ENDIF()
@@ -49,7 +49,7 @@
       BINARY_DIR ${proj}-build
       PREFIX ${proj}-cmake
       URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/CTK_${revision_tag}.tar.gz
-      URL_MD5 9c41a78e2e2f9c4823c05a82c6d813ae
+      URL_MD5 cbd57918a076d6c3830313c01724ceaf
       UPDATE_COMMAND ""
       INSTALL_COMMAND ""
       CMAKE_GENERATOR ${gen}


Add option to exclude packages in ament_execute_extensions: (#165)

- This provides a mechanism for 'ament-auto' packages to have
their own exclude options

Signed-off-by: Juan Pablo Samper <2a85767837cb6bdeb6ab9df34ca4358d2f954e5d@apex.ai>

--- ament_cmake_core/cmake/core/ament_execute_extensions.cmake
+++ ament_cmake_core/cmake/core/ament_execute_extensions.cmake
@@ -17,10 +17,17 @@
 #
 # :param extension_point: the name of the extension point
 # :type extension_point: string
+# :param EXCLUDE: List of packages that should be skipped
+# :type EXCLUDE: list of strings
 #
 # @public
 #
 macro(ament_execute_extensions extension_point)
+  cmake_parse_arguments(_ARG "" "" "EXCLUDE" ${ARGN})
+  if(_ARG_UNPARSED_ARGUMENTS)
+    message(FATAL_ERROR "ament_execute_extensions() called with "
+      "unused arguments: ${_ARG_UNPARSED_ARGUMENTS}")
+  endif()
   if(AMENT_EXTENSIONS_${extension_point})
     foreach(_extension ${AMENT_EXTENSIONS_${extension_point}})
       string(REPLACE ":" ";" _extension_list "${_extension}")
@@ -31,6 +38,9 @@
           "name and cmake filename")
       endif()
       list(GET _extension_list 0 _pkg_name)
+      if("${_pkg_name}" IN_LIST _ARG_EXCLUDE)
+        continue()
+      endif()
       list(GET _extension_list 1 _cmake_filename)
       set(_extension_file "${${_pkg_name}_DIR}/${_cmake_filename}")
       assert_file_exists("${_extension_file}"


cmake: check for XITouchClass

cmake: check for XITouchClass

--- cmake/FindXi.cmake
+++ cmake/FindXi.cmake
@@ -28,6 +28,8 @@
 # limitations under the License.
 #=============================================================================

+include(CheckSymbolExists)
+
 find_path(XI_INCLUDE_DIR NAMES X11/extensions/XInput2.h
           DOC "The Xi include directory")

@@ -38,6 +40,14 @@
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(Xi DEFAULT_MSG XI_LIBRARY XI_INCLUDE_DIR)

 if(XI_FOUND)
+	check_symbol_exists(XITouchClass "${XI_INCLUDE_DIR}/X11/extensions/XInput2.h" HAVE_XI_TOUCH_CLASS)
+
+	if (NOT HAVE_XI_TOUCH_CLASS)
+		set(XI_FOUND 0)
+	endif()
+endif()
+
+if(XI_FOUND)
 	set(XI_LIBRARIES ${XI_LIBRARY})
 	set(XI_INCLUDE_DIRS ${XI_INCLUDE_DIR})
 endif()


fix finding vulkan

fix finding vulkan

--- cmake/Macros.cmake
+++ cmake/Macros.cmake
@@ -40,7 +40,7 @@
   	set(VULKAN_INCLUDES "${MOLTENVK_DIR}/include" PARENT_SCOPE)
   else()
   	find_package(Vulkan REQUIRED)
-  	set(VULKAN_LIBRARIES Vulkan::Vulkan)
+  	set(VULKAN_LIBRARIES Vulkan::Vulkan PARENT_SCOPE)
   endif()
 endfunction()


On OS X, build OpenCOR using the oldest SDK shipped with Xcode.

--- cmake/common.cmake
+++ cmake/common.cmake
@@ -90,6 +90,38 @@

     IF(WIN32)
         ADD_DEFINITIONS(-D_UNICODE)
+    ENDIF()
+
+    # Use the oldest SDK shipped with Xcode
+    # Note: xcodebuild always seems to generate an error message even though
+    #       everything works fine, hence we pass ERROR_QUIET to
+    #       EXECUTE_PROCESS()...
+
+    IF(APPLE)
+        EXECUTE_PROCESS(COMMAND xcodebuild -showsdks
+                        COMMAND grep --colour=never macosx
+                        COMMAND head -1
+                        OUTPUT_VARIABLE OLDEST_SDK_LINE
+                        OUTPUT_STRIP_TRAILING_WHITESPACE
+                        ERROR_QUIET)
+        EXECUTE_PROCESS(COMMAND echo ${OLDEST_SDK_LINE}
+                        COMMAND cut -f2
+                        OUTPUT_VARIABLE OLDEST_OS_X_VERSION
+                        OUTPUT_STRIP_TRAILING_WHITESPACE)
+        EXECUTE_PROCESS(COMMAND echo ${OLDEST_SDK_LINE}
+                        COMMAND cut -f3
+                        OUTPUT_VARIABLE OLDEST_SDK_VERSION
+                        OUTPUT_STRIP_TRAILING_WHITESPACE)
+        EXECUTE_PROCESS(COMMAND echo ${OLDEST_SDK_VERSION}
+                        COMMAND cut -d " " -f2
+                        OUTPUT_VARIABLE OLDEST_SDK_NAME
+                        OUTPUT_STRIP_TRAILING_WHITESPACE)
+        EXECUTE_PROCESS(COMMAND xcodebuild -version -sdk ${OLDEST_SDK_NAME} Path
+                        OUTPUT_VARIABLE OLDEST_SDK_PATH
+                        OUTPUT_STRIP_TRAILING_WHITESPACE
+                        ERROR_QUIET)
+
+        SET(CMAKE_OSX_SYSROOT ${OLDEST_SDK_PATH})
     ENDIF()

     # Default location of third-party libraries


Some more cleaning up of common.cmake for Mac OS X.

--- cmake/common.cmake
+++ cmake/common.cmake
@@ -456,7 +456,7 @@
             STRING(REPLACE "${PLUGIN_BUILD_DIR}/" "" OPENCOR_BINARY_DEPENDENCY "${OPENCOR_BINARY_DEPENDENCY}")

             ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD
-                               COMMAND install_name_tool -change ${PLUGIN_BUILD_DIR}/${OPENCOR_BINARY_DEPENDENCY}
+                               COMMAND install_name_tool -change ${OPENCOR_BINARY_DEPENDENCY}
                                                                  @executable_path/../PlugIns/${MAIN_PROJECT_NAME}/${OPENCOR_BINARY_DEPENDENCY}
                                                                  ${MAC_OS_X_PROJECT_BINARY_DIR}/Contents/PlugIns/${MAIN_PROJECT_NAME}/${PLUGIN_FILENAME})
         ENDFOREACH()
@@ -718,22 +718,6 @@
     ADD_CUSTOM_TARGET(${MAIN_PROJECT_NAME}_${PLUGIN_NAME}_COPY_PLUGIN_TO_BUILD_DIRECTORY ALL
                       COMMAND ${CMAKE_COMMAND} -E copy ${PLUGIN_BINARY_DIR}/${PLUGIN_FILENAME}
                                                        ${CMAKE_BINARY_DIR}/${PLUGIN_FILENAME})
-
-    # A few Mac OS X specific things
-
-    IF(APPLE)
-        # Make sure that the plugin refers to the system version of the Qt
-        # libraries on which it depends
-        # Note: indeed, the copy of the binary plugin that we have refers to
-        #       the embedded version of the Qt libraries, so...
-
-        FOREACH(QT_DEPENDENCY ${QT_DEPENDENCIES})
-            ADD_CUSTOM_TARGET(${MAIN_PROJECT_NAME}_${PLUGIN_NAME}_UPDATE_MAC_OS_X_QT_REFERENCE ALL
-                               COMMAND install_name_tool -change @executable_path/../Frameworks/${QT_DEPENDENCY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_DEPENDENCY}
-                                                                 ${QT_LIBRARY_DIR}/${QT_DEPENDENCY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_DEPENDENCY}
-                                                                 ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
-        ENDFOREACH()
-    ENDIF()

     # Package the plugin itself


Forward CMAKE_*_IMPLICIT_INCLUDE_DIRECTORIES

--- cmake/modules/hunter_create_cache_file.cmake
+++ cmake/modules/hunter_create_cache_file.cmake
@@ -93,6 +93,12 @@
         "${temp_path}"
         "set(CMAKE_${lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES \"${CMAKE_${lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES}\" CACHE INTERNAL \"\")\n"
     )
+    hunter_status_debug("ABI forwarding: CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES = ${CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES}")
+    file(
+        APPEND
+        "${temp_path}"
+        "set(CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES \"${CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES}\" CACHE INTERNAL \"\")\n"
+    )
     if(DEFINED CMAKE_${lang}_LIBRARY_ARCHITECTURE)
       hunter_status_debug("ABI forwarding: CMAKE_${lang}_LIBRARY_ARCHITECTURE = ${CMAKE_${lang}_LIBRARY_ARCHITECTURE}")
       file(


Set CMAKE_ Variables in post-init unless absolutely nessecary

--- standard/StandardProject.cmake
+++ standard/StandardProject.cmake
@@ -72,7 +72,9 @@
       endif()
     endif()
   endif()
+endfunction()

+function(standard_project_postinit)
   # All of our binaries go to one place:  The binaries output directory.  We only want to tinker
   # with this if we're building by ourselves, otherwise we just do whatever the enclosing project
   # wants us to do.
@@ -117,9 +119,6 @@
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++" PARENT_SCOPE)
   endif()

-endfunction()
-
-function(standard_project_postinit)
   # CMAKE_SYSTEM_PROCESSOR is set by the toolchain, so must happen strictly after project()
   if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
     set(standard_BUILD_ARCHITECTURES "aarch64" PARENT_SCOPE)
@@ -139,7 +138,6 @@
   endif()
   message(STATUS "Using architecture: ${standard_BUILD_ARCHITECTURES}")

-  # Post-initialization steps. All of these depend on project() having been called.
   include(CTest)

   if(CMAKE_COMPILER_IS_GNUCC)


Set VTK_USE_QVTK_QTOPENGL off by default

--- CMakeExternals/VTK.cmake
+++ CMakeExternals/VTK.cmake
@@ -44,6 +44,7 @@
         -DVTK_USE_CHARTS:BOOL=OFF
         -DVTK_USE_GEOVIS:BOOL=OFF
         -DVTK_USE_SYSTEM_FREETYPE:BOOL=${VTK_USE_SYSTEM_FREETYPE}
+        -DVTK_USE_QVTK_QTOPENGL:BOOL=OFF
         ${vtk_QT_ARGS}
      DEPENDS ${proj_DEPENDENCIES}
     )


BUG: go back to patchelf 0.9 as patchelf > 0.10 corrupts ELFs with lot of XXXX (https://github.com/NixOS/patchelf/issues/45)

--- Packaging/External_patchelf.cmake
+++ Packaging/External_patchelf.cmake
@@ -41,8 +41,8 @@

 ExternalProject_Add(PATCHELF
   PREFIX "${PATCHELF_PREFIX_DIR}"
-  URL                 "https://github.com/NixOS/patchelf/archive/refs/tags/0.12.tar.gz"
-  URL_MD5             b9d1161e52e2f342598deabf7d85ed24
+  URL                 "http://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.bz2"
+  URL_MD5             d02687629c7e1698a486a93a0d607947
   DOWNLOAD_DIR        "${DOWNLOAD_LOCATION}"
   SOURCE_DIR          "${PATCHELF_SOURCE_DIR}"
   BINARY_DIR          "${PATCHELF_SOURCE_DIR}"


add posix multi topo block reading test

add posix multi topo block reading test

--- phSolver/common/test/testing.cmake
+++ phSolver/common/test/testing.cmake
@@ -9,6 +9,9 @@

 common_parallel_test(readHeader 4 ${CASES}/incompressible
   ${PHASTA_BINARY_DIR}/bin/phIOreadheader 2)
+common_parallel_test(readHeaderMultiTopo 4
+  ${CASES}/crossflow/4-1chef/4-procs_case
+  ${PHASTA_BINARY_DIR}/bin/phIOposixMultiTopo)
 common_parallel_test(readDatablock 4 ${CASES}/incompressible
   ${PHASTA_BINARY_DIR}/bin/phIOreaddatablock 2)
 common_parallel_test(write 4 ${CASES}


Get rid of isinf redefinition warnings for qt_example build by defining
PL_HAVE_ISINF and PL__HAVE_ISINF for the case when config.h is not available.

svn path=/trunk/; revision=10252

--- include/plConfig.h.cmake
+++ include/plConfig.h.cmake
@@ -45,9 +45,15 @@
 #cmakedefine PL_HAVE_CXX_STDINT_H

 /* Define if isinf is available */
+#cmakedefine PL_HAVE_ISINF
+
+/* Define if _isinf is available */
+#cmakedefine PL__HAVE_ISINF
+
+/* Define if isnan is available */
 #cmakedefine PL_HAVE_ISNAN

-/* Define if _isinf is available */
+/* Define if _isnan is available */
 #cmakedefine PL__HAVE_ISNAN

 /* Define to 1 if you have the <stdint.h> header file. */


COMP: more debug information when PKG_DEBUG is set

--- SuperBuild/Packaging/PackageHelper.cmake
+++ SuperBuild/Packaging/PackageHelper.cmake
@@ -329,7 +329,9 @@

 function(func_process_deps input_file)

+  set(input_file_full_path)
   search_library(${input_file} PKG_SEARCHDIRS input_file_full_path)
+
   if(NOT input_file_full_path)
     if(LINUX)
       setif_value_in_list(is_gtk_lib "${input_file}" ALLOWED_SYSTEM_DLLS)
@@ -346,10 +348,13 @@

   endif() #if(NOT input_file_full_path)

-  message("Processing ${input_file_full_path}")
+  if(NOT PKG_DEBUG)
+    message("Processing ${input_file_full_path}")
+  endif()

   set(is_executable FALSE)
   is_file_executable2(input_file_full_path is_executable)
+
   if(NOT is_executable)
     #copy back to input_file_full_path
     pkg_install_rule(${input_file_full_path})
@@ -376,23 +381,23 @@
           OR  IS_DIRECTORY "${sofile}" )
         set(not_valid TRUE)
       endif()
-
+
       if(not_valid)
         continue()
       endif()
-
+
       func_is_file_a_symbolic_link("${sofile}" is_symlink linked_to_file)
-
+
       if(is_symlink)
         add_to_symlink_list("${linked_to_file}" "${basename_of_sofile}")
       endif() # is_symlink
-
+
     endforeach()
-
+
   endif(UNIX)
-
+
   set(raw_items)
-
+
   execute_process(
     COMMAND ${LOADER_PROGRAM} ${LOADER_PROGRAM_ARGS} "${input_file_full_path}"
     RESULT_VARIABLE loader_rv
@@ -410,10 +415,15 @@
   get_filename_component(bn_name ${input_file_full_path} NAME)
   set(${bn_name}_USED TRUE CACHE INTERNAL "")

+  if(PKG_DEBUG)
+    message("Processing ${input_file} started. Set ${bn_name}_USED=${${bn_name}_USED}")
+  endif()
+
   foreach(candidate ${candidates})
     if(NOT candidate)
       continue()
     endif()
+
     if(NOT "${candidate}" MATCHES "${loader_program_regex}")
       continue()
     endif()
@@ -423,25 +433,25 @@
     if(NOT raw_item)
       continue()
     endif()
-
+
     string(STRIP ${raw_item} raw_item)
     set(is_system FALSE)
     setif_value_in_list(is_system "${raw_item}" SYSTEM_DLLS)

     if(APPLE AND NOT is_system)
       if("${raw_item}" MATCHES "@rpath")
-	string(REGEX REPLACE "@rpath." "" raw_item "${raw_item}")
+        string(REGEX REPLACE "@rpath." "" raw_item "${raw_item}")
       else()
-	message(FATAL_ERROR "'${raw_item}' does not have @rpath")
-      endif()
-    endif()
-
-    if(is_system  OR ${raw_item}_RESOLVED OR ${raw_item}_USED)
-      continue()
-    endif()
-
-    if(PKG_DEBUG)
-      message("${raw_item} is not resolved, used. ${raw_item}_RESOLVED | ${raw_item}_USED")
+        message(FATAL_ERROR "'${raw_item}' does not have @rpath")
+      endif()
+    endif()
+
+    if(PKG_DEBUG AND ${raw_item}_RESOLVED)
+      message("${raw_item} is already resolved [${raw_item}_RESOLVED=${${raw_item}_RESOLVED}]")
+    endif()
+
+    if(is_system OR ${raw_item}_RESOLVED OR ${raw_item}_USED)
+      continue()
     endif()

     list(APPEND raw_items ${raw_item})
@@ -450,7 +460,7 @@

   if(PKG_DEBUG)
     string(REPLACE ";" "\n" raw_items_pretty_print "${raw_items}")
-    message(FATAL_ERROR "raw_items=${raw_items_pretty_print}")
+    # message(FATAL_ERROR "raw_items=${raw_items_pretty_print}")
   endif(PKG_DEBUG)

   if(raw_items)
@@ -459,25 +469,25 @@
       search_library(${item} PKG_SEARCHDIRS item_full_path)
       set(is_a_symlink FALSE)
       set(item_target_file)
-      if(PKG_DEBUG)
-	message("item0=${item_full_path}")
-      endif()
       func_is_file_a_symbolic_link("${item_full_path}" is_a_symlink item_target_file)
       if(is_a_symlink)
-	set(${item}_RESOLVED TRUE CACHE INTERNAL "")
-	set(item ${item_target_file})
+        set(${item}_RESOLVED TRUE CACHE INTERNAL "")
+        set(item ${item_target_file})
       endif()
       if(PKG_DEBUG)
-	message("running func_process_deps on '${item}'")
+        message("${bn_name} depends on '${item}'. So we now process '${item}'") # [ ${item}_USED=${${item}_USED} ${item}_RESOLVED=${${item}_RESOLVED}]")
       endif()
       func_process_deps(${item})
-  endforeach()
-endif()
-
-set(${bn_name}_RESOLVED TRUE CACHE INTERNAL "")
-
-pkg_install_rule(${input_file_full_path})
-
+    endforeach()
+  endif()
+
+  set(${bn_name}_RESOLVED TRUE CACHE INTERNAL "")
+   if(PKG_DEBUG)
+     message("All dependencies of ${bn_name} are processed. Install file and set ${bn_name}_RESOLVED=${${bn_name}_RESOLVED}")
+   endif()
+
+   #Install the file with pkg_install_rule. This function has specific rules to decide wheather install file or not
+   pkg_install_rule(${input_file_full_path})

 endfunction() #function(func_process_deps infile)


disable pch messages when Wno-pch-messages flag exists

--- CMake/cotire.cmake
+++ CMake/cotire.cmake
@@ -1657,6 +1657,10 @@
 			get_filename_component(_pchName "${_pchFile}" NAME)
 			set (_xLanguage_C "c-header")
 			set (_xLanguage_CXX "c++-header")
+			set (_pchSuppressMessages FALSE)
+			if ("${CMAKE_${_language}_FLAGS}" MATCHES ".*-Wno-pch-messages.*")
+				set(_pchSuppressMessages TRUE)
+			endif()
 			if (_flags)
 				# append to list
 				if ("${_language}" STREQUAL "CXX")
@@ -1664,13 +1668,17 @@
 				endif()
 				list (APPEND _flags "-include" "${_prefixFile}" "-pch-dir" "${_pchDir}" "-pch-create" "${_pchName}" "-fsyntax-only" "${_hostFile}")
 				if (NOT "${_compilerVersion}" VERSION_LESS "13.1.0")
-					list (APPEND _flags "-Wpch-messages")
+					if (NOT _pchSuppressMessages)
+						list (APPEND _flags "-Wpch-messages")
+					endif()
 				endif()
 			else()
 				# return as a flag string
 				set (_flags "-include \"${_prefixFile}\" -pch-dir \"${_pchDir}\" -pch-create \"${_pchName}\"")
 				if (NOT "${_compilerVersion}" VERSION_LESS "13.1.0")
-					set (_flags "${_flags} -Wpch-messages")
+					if (NOT _pchSuppressMessages)
+						set (_flags "${_flags} -Wpch-messages")
+					endif()
 				endif()
 			endif()
 		endif()
@@ -1781,17 +1789,25 @@
 			if (_pchFile)
 				get_filename_component(_pchDir "${_pchFile}" DIRECTORY)
 				get_filename_component(_pchName "${_pchFile}" NAME)
+				set (_pchSuppressMessages FALSE)
+				if ("${CMAKE_${_language}_FLAGS}" MATCHES ".*-Wno-pch-messages.*")
+					set(_pchSuppressMessages TRUE)
+				endif()
 				if (_flags)
 					# append to list
 					list (APPEND _flags "-include" "${_prefixFile}" "-pch-dir" "${_pchDir}" "-pch-use" "${_pchName}")
 					if (NOT "${_compilerVersion}" VERSION_LESS "13.1.0")
-						list (APPEND _flags "-Wpch-messages")
+						if (NOT _pchSuppressMessages)
+							list (APPEND _flags "-Wpch-messages")
+						endif()
 					endif()
 				else()
 					# return as a flag string
 					set (_flags "-include \"${_prefixFile}\" -pch-dir \"${_pchDir}\" -pch-use \"${_pchName}\"")
 					if (NOT "${_compilerVersion}" VERSION_LESS "13.1.0")
-						set (_flags "${_flags} -Wpch-messages")
+						if (NOT _pchSuppressMessages)
+							set (_flags "${_flags} -Wpch-messages")
+						endif()
 					endif()
 				endif()
 			else()


[breaking] Remove CUDA sm_35, add sm_86 (#7182)

--- cmake/Utils.cmake
+++ cmake/Utils.cmake
@@ -91,7 +91,7 @@
   # Set up architecture flags
   if(NOT flags)
     if (CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
-      set(flags "35;50;52;60;61;70;75;80")
+      set(flags "50;52;60;61;70;75;80;86")
     elseif(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
       set(flags "35;50;52;60;61;70;75")
     elseif(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")


gtest include path fix

gtest include path fix

--- cmake/gtest.cmake
+++ cmake/gtest.cmake
@@ -40,7 +40,7 @@
         IMPORTED_LINK_INTERFACE_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
     add_dependencies(${gtest_main_LIBRARY} ${gtest_LIBRARY})

-    include_directories(${gtest_INCLUDE_DIR}/include)
+    include_directories(${gtest_INCLUDE_DIR})

 else(NOT ${PROJECT_NAME}_USING_CATKIN)


Use the more portable CMAKE_COMMAND when invoking cmake

--- cmake/tests.cmake
+++ cmake/tests.cmake
@@ -14,7 +14,7 @@
   if(NOT TARGET clean-test-results)
     # Clean out previous test results before running tests.
     add_custom_target(clean-test-results
-      COMMAND cmake -E remove_directory ${CMAKE_BINARY_DIR}/test_results
+      COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/test_results
       )

     # Make the tests target depend on clean-test-results, which will ensure
@@ -142,7 +142,7 @@
   endif()

   set(output_dir_name ${CMAKE_BINARY_DIR}/test_results/${PROJECT_NAME})
-  append_test_to_cache(catkin-tests "cmake -E make_directory ${output_dir_name}")
+  append_test_to_cache(catkin-tests "${CMAKE_COMMAND} -E make_directory ${output_dir_name}")
   string(REPLACE "/" "." output_file_name ${dir})
   append_test_to_cache(catkin-tests "${nosetests_path} --where=${_dir_name} --with-xunit --xunit-file=${output_dir_name}/${output_file_name}.xml ${_covarg}")
 endfunction()


FindDirectX11: Try harder to find DX11 SDK as part of Modern SDK, use version passed by CMake or highest available, search in standard and obtaines from registry location, restored support for ARM and ARM64 library archs.

--- CMake/Packages/FindDirectX11.cmake
+++ CMake/Packages/FindDirectX11.cmake
@@ -23,48 +23,46 @@
 		# Windows Phone 8.1 SDK
 		if(WINDOWS_PHONE AND MSVC12)
 			find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Phone Kits/8.1/include" "C:/Program Files/Windows Phone Kits/8.1/include")
-			set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Phone Kits/8.1/lib/${MSVC_CXX_ARCHITECTURE_ID}/"

 		# Windows Phone 8.0 SDK
 		elseif(WINDOWS_PHONE AND MSVC11)
 			find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Phone Kits/8.0/include" "C:/Program Files/Windows Phone Kits/8.0/include")
-			set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Phone Kits/8.0/lib/${MSVC_CXX_ARCHITECTURE_ID}/"

 		endif()
 	elseif( NOT MSVC90 )
 		# Windows 10.x SDK
-		if(CMAKE_CL_64)
-			set(DirectX11_LIBPATH_SUFFIX "x64")
-		else(CMAKE_CL_64)
-			set(DirectX11_LIBPATH_SUFFIX "x86")
-		endif(CMAKE_CL_64)
 		get_filename_component(kit10_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" REALPATH)
-		file(GLOB kit10_list ${kit10_dir}/Include/10.*)
-		foreach(tmp_elem ${kit10_list})
-			if(IS_DIRECTORY ${tmp_elem})
-				get_filename_component(kit10_ver ${tmp_elem} NAME)
-				set(DirectX11_LIB_SEARCH_PATH "${kit10_dir}/Lib/${kit10_ver}/um")
-				find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "${tmp_elem}/um")
-				find_library(DirectX11_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
-				find_library(DirectX11_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
-				find_library(DirectX11_D3D11_LIBRARY NAMES d3d11 HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
-				set(DirectX11_LIBRARY
-					${DirectX11_D3D11_LIBRARY}
-					${DirectX11_DXGI_LIBRARY}
-					${DirectX11_DXGUID_LIBRARY}
-				)
-			endif()
+		file(GLOB W10SDK_VERSIONS RELATIVE ${kit10_dir}/Include ${kit10_dir}/Include/10.*) 			# enumerate pre-release and not yet known release versions
+		list(APPEND W10SDK_VERSIONS "10.0.10240.0" "10.0.14393.0" "10.0.15063.0" "10.0.16299.0")	# enumerate well known release versions
+		list(REMOVE_DUPLICATES W10SDK_VERSIONS)
+		list(SORT W10SDK_VERSIONS)
+		list(REVERSE W10SDK_VERSIONS)																# sort from high to low
+		if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION)
+			list(INSERT W10SDK_VERSIONS 0 ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION})				# prefer version passed by CMake, if any
+		endif()
+		foreach(W10SDK_VER ${W10SDK_VERSIONS})
+			find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "${kit10_dir}/Include/${W10SDK_VER}/um" "C:/Program Files (x86)/Windows Kits/10/Include/${W10SDK_VER}/um" "C:/Program Files/Windows Kits/10/Include/${W10SDK_VER}/um")
 		endforeach()
 		# Windows 8.1 SDK
 		if(NOT DirectX11_INCLUDE_DIR)
 			find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Kits/8.1/include/um" "C:/Program Files/Windows Kits/8.1/include/um")
-			set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Kits/8.1/lib/winv6.3/um/${MSVC_CXX_ARCHITECTURE_ID}/"
 		endif()
 		# Windows 8.0 SDK
 		if(NOT DirectX11_INCLUDE_DIR)
 			find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Kits/8.0/include/um" "C:/Program Files/Windows Kits/8.0/include/um")
-			set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Kits/8.0/lib/win8/um/${MSVC_CXX_ARCHITECTURE_ID}/"
 		endif()
+	endif()
+
+	if(DirectX11_INCLUDE_DIR)
+		# No need to specify full path to libraries, proper version would be found as part of SDK, in one of the following places
+		# "C:/Program Files (x86)/Windows Kits/10/lib/${W10SDK_VER}/um/${MSVC_CXX_ARCHITECTURE_ID}/"
+		# "C:/Program Files (x86)/Windows Kits/8.1/lib/winv6.3/um/${MSVC_CXX_ARCHITECTURE_ID}/"
+		# "C:/Program Files (x86)/Windows Kits/8.0/lib/win8/um/${MSVC_CXX_ARCHITECTURE_ID}/"
+		# "C:/Program Files (x86)/Windows Phone Kits/8.1/lib/${MSVC_CXX_ARCHITECTURE_ID}/"
+		# "C:/Program Files (x86)/Windows Phone Kits/8.0/lib/${MSVC_CXX_ARCHITECTURE_ID}/"
+		set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib)
+		# but it is usefull to output selected version to the log
+		message(STATUS "Found DirectX11 headers: ${DirectX11_INCLUDE_DIR}")
 	endif()

 	# Legacy Direct X SDK


[D3D11] Update FindDirectX11.cmake - Windows SDK 8.0/8.1 and Windows Phone SDK 8.0/8.1 are supported now

--HG--
branch : v1-9

--- CMake/Packages/FindDirectX11.cmake
+++ CMake/Packages/FindDirectX11.cmake
@@ -11,13 +11,40 @@
 # Find DirectX11 SDK
 # Define:
 # DirectX11_FOUND
-# DirectX11_INCLUDE_DIR
-# DirectX11_LIBRARY
-# DirectX11_ROOT_DIR
+# DirectX11_INCLUDE_DIRS
+# DirectX11_LIBRARIES

 if(WIN32) # The only platform it makes sense to check for DirectX11 SDK
 	include(FindPkgMacros)
 	findpkg_begin(DirectX11)
+
+	# assume that toolchain could not be changed on the fly, so only changes to OGRE_BUILD_PLATFORM_WINDOWS_PHONE should reset the cache
+	clear_if_changed(OGRE_BUILD_PLATFORM_WINDOWS_PHONE
+		DirectX11_INCLUDE_DIR
+	)
+
+	# Windows Phone 8.1 SDK
+	if(OGRE_BUILD_PLATFORM_WINDOWS_PHONE AND MSVC12)
+		find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Phone Kits/8.1/include" "C:/Program Files/Windows Phone Kits/8.1/include")
+		set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Phone Kits/8.1/lib/${MSVC_CXX_ARCHITECTURE_ID}/"
+
+	# Windows Phone 8.0 SDK
+	elseif(OGRE_BUILD_PLATFORM_WINDOWS_PHONE AND MSVC11)
+		find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Phone Kits/8.0/include" "C:/Program Files/Windows Phone Kits/8.0/include")
+		set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Phone Kits/8.0/lib/${MSVC_CXX_ARCHITECTURE_ID}/"
+
+	# Windows 8.1 SDK
+	elseif(MSVC12)
+	    find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Kits/8.1/include/um" "C:/Program Files/Windows Kits/8.1/include/um")
+		set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Kits/8.1/lib/winv6.3/um/${MSVC_CXX_ARCHITECTURE_ID}/"
+
+	# Windows 8.0 SDK
+	elseif(MSVC11)
+	    find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "C:/Program Files (x86)/Windows Kits/8.0/include/um" "C:/Program Files/Windows Kits/8.0/include/um")
+		set(DirectX11_LIBRARY d3d11.lib dxgi.lib dxguid.lib) # in "C:/Program Files (x86)/Windows Kits/8.0/lib/win8/um/${MSVC_CXX_ARCHITECTURE_ID}/"
+
+	# Legacy Direct X SDK
+	else()

 	# Get path, convert backslashes as ${ENV_DXSDK_DIR}
 	getenv_path(DXSDK_DIR)
@@ -38,17 +65,6 @@
 	"$ENV{ProgramFiles}/Microsoft DirectX SDK*"
 	)

-	if(OGRE_BUILD_PLATFORM_WINRT)
-		# Windows 8 SDK has custom layout
-		set(DirectX11_INC_SEARCH_PATH
-		"C:/Program Files (x86)/Windows Kits/8.0/Include/shared"
-		"C:/Program Files (x86)/Windows Kits/8.0/Include/um"
-		)
-		set(DirectX11_LIB_SEARCH_PATH
-		"C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um"
-		)
-	endif()
-
 	create_search_paths(DirectX11)
 	# redo search if prefix path changed
 	clear_if_changed(DirectX11_PREFIX_PATH
@@ -65,19 +81,17 @@
 	endif(CMAKE_CL_64)

 	# look for D3D11 components
-    find_path(DirectX11_INCLUDE_DIR NAMES D3D11Shader.h HINTS ${DirectX11_INC_SEARCH_PATH})
+    find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS ${DirectX11_INC_SEARCH_PATH})
     find_library(DirectX11_DXERR_LIBRARY NAMES DxErr HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
 	find_library(DirectX11_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
 	find_library(DirectX11_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
 	find_library(DirectX11_D3DCOMPILER_LIBRARY NAMES d3dcompiler HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
+	find_library(DirectX11_D3D11_LIBRARY NAMES d3d11 HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
+	find_library(DirectX11_D3DX11_LIBRARY NAMES d3dx11 HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})

-	find_library(DirectX11_LIBRARY NAMES d3d11 HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
-    find_library(DirectX11_D3DX11_LIBRARY NAMES d3dx11 HINTS ${DirectX11_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX11_LIBPATH_SUFFIX})
-	if (DirectX11_INCLUDE_DIR AND DirectX11_LIBRARY)
-	  set(DirectX11_D3D11_FOUND TRUE)
-	  set(DirectX11_INCLUDE_DIR ${DirectX11_INCLUDE_DIR})
+	if (DirectX11_INCLUDE_DIR AND DirectX11_D3D11_LIBRARY)
 	  set(DirectX11_D3D11_LIBRARIES ${DirectX11_D3D11_LIBRARIES}
-	    ${DirectX11_LIBRARY}
+	    ${DirectX11_D3D11_LIBRARY}
 	    ${DirectX11_DXGI_LIBRARY}
         ${DirectX11_DXGUID_LIBRARY}
         ${DirectX11_D3DCOMPILER_LIBRARY}
@@ -90,25 +104,19 @@
         set(DirectX11_D3D11_LIBRARIES ${DirectX11_D3D11_LIBRARIES} ${DirectX11_DXERR_LIBRARY})
     endif ()

-	findpkg_finish(DirectX11)
-
-	set(DirectX11_LIBRARIES
+	set(DirectX11_LIBRARY
 		${DirectX11_D3D11_LIBRARIES}
 	)

-	if (OGRE_BUILD_PLATFORM_WINDOWS_PHONE)
-		set(DirectX11_FOUND TRUE)
-        set(DirectX11_INCLUDE_DIR "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/WPSDK/WP80/include" CACHE STRING "" FORCE)
-        set(DirectX11_LIBRARY "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/WPSDK/WP80/lib" CACHE STRING "" FORCE)
-        set(DirectX11_LIBRARIES ${DirectX11_LIBRARY})
-		set(CMAKE_CXX_FLAGS "/EHsc"  CACHE STRING "" FORCE)
-	endif ()
-
-	mark_as_advanced(DirectX11_INCLUDE_DIR
-					 DirectX11_D3D11_LIBRARIES
+	mark_as_advanced(DirectX11_D3D11_LIBRARY
 					 DirectX11_D3DX11_LIBRARY
 					 DirectX11_DXERR_LIBRARY
 					 DirectX11_DXGUID_LIBRARY
 					 DirectX11_DXGI_LIBRARY
 					 DirectX11_D3DCOMPILER_LIBRARY)
+
+	endif () # Legacy Direct X SDK
+
+	findpkg_finish(DirectX11)
+
 endif(WIN32)


Minor cleanup

Minor cleanup

[ ] May break build
[ ] May break existing applications (see CHANGES.txt)
[ ] Bugfix
[ ] New Feature
[x] Cleanup
[ ] Optimization
[ ] Documentation

--- CPackConfig.cmake
+++ CPackConfig.cmake
@@ -93,6 +93,7 @@
   set(CPACK_GENERATOR "TGZ;DEB;RPM")
 endif(LINUX)

+set(CPACK_STRIP_FILES TRUE)
 set(UBUNTU_LP_BUG 300472)
 include(InstallRequiredSystemLibraries)
 include(CPack)


Change version number of the package.

Change version number of the package.

--- CPackConfig.cmake
+++ CPackConfig.cmake
@@ -12,7 +12,7 @@

 ### versions
 set(CPACK_PACKAGE_VERSION_MAJOR "0")
-set(CPACK_PACKAGE_VERSION_MINOR "2")
+set(CPACK_PACKAGE_VERSION_MINOR "3")
 set(CPACK_PACKAGE_VERSION_PATCH "0")
 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")


COMP: Add CTestCustom.cmake to suppress useless warnings

--- CTestCustom.cmake
+++ CTestCustom.cmake
@@ -22,7 +22,7 @@
 #-- #The following are brains2 warnings that just need to be suppressed because they are caused
 #-- #by third parties, and will never be fixed.
 set(CTEST_CUSTOM_WARNING_EXCEPTION
-  "Point.*may be used uninitialized"
+  "itkPoint.hxx.*may be used uninitialized"
   ".*was declared here.*"
     )
 ##Intel compiler does not like itkLegacyMacro warning #1170


COMP: add warning to CTestCustom.cmake

COMP: add warning to CTestCustom.cmake

--- CTestCustom.cmake
+++ CTestCustom.cmake
@@ -22,7 +22,7 @@
 #-- #The following are brains2 warnings that just need to be suppressed because they are caused
 #-- #by third parties, and will never be fixed.
 set(CTEST_CUSTOM_WARNING_EXCEPTION
-  "itkPoint.hxx.*may be used uninitialized"
+  "Point.*may be used uninitialized"
   ".*was declared here.*"
     )
 ##Intel compiler does not like itkLegacyMacro warning #1170


ENH: Reuse the previous types and make sure to use the right pixel type for the priors.

--- Wrapping/WrapITK/Modules/SegmentationAndThreshold/wrap_itkBayesianClassifierImageFilter.cmake
+++ Wrapping/WrapITK/Modules/SegmentationAndThreshold/wrap_itkBayesianClassifierImageFilter.cmake
@@ -1,14 +1,11 @@
-### NOTE:  This assumes taht the 3rd and 4th template arguments are both the same floating point type.
-### NOTE:  Removed scalar types for the vector image type, because it must match the 3rd lement type.
-### NOTE:  This change was necessary to avoid itk BUG number 0010205 that demonstrates that the only valid
-###        vector type is one that has floating point voxel elements that are same as the PriorType.
-###        To preserve backwards compatibility, the types are re-used multiple times in an unconventional way.
 WRAP_CLASS("itk::BayesianClassifierImageFilter" POINTER)
   FOREACH(d ${WRAP_ITK_DIMS})
+    FOREACH(t ${WRAP_ITK_SCALAR})
       FOREACH(t2 ${WRAP_ITK_INT})
         FOREACH(t3 ${WRAP_ITK_REAL})
-          WRAP_TEMPLATE("${ITKM_VI${t3}${d}}${ITKM_${t2}}${ITKM_${t3}}" "${ITKT_VI${t3}${d}}, ${ITKT_${t2}}, ${ITKT_${t3}}, ${ITKT_${t3}}")
+          WRAP_TEMPLATE("${ITKM_VI${t}${d}}${ITKM_${t2}}${ITKM_${t3}}${ITKM_${t3}}" "${ITKT_VI${t}${d}}, ${ITKT_${t2}}, ${ITKT_${t3}}, ${ITKT_${t3}}")
         ENDFOREACH(t3)
       ENDFOREACH(t2)
+    ENDFOREACH(t)
   ENDFOREACH(d)
 END_WRAP_CLASS()


TEST: configuration file for cdash

TEST: configuration file for cdash

--- CTestConfig.cmake
+++ CTestConfig.cmake
@@ -1,12 +1,13 @@
-SET(CTEST_PROJECT_NAME "OTB")
-SET(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
+## This file should be placed in the root directory of your project.
+## Then modify the CMakeLists.txt file in the root directory of your
+## project to incorporate the testing dashboard.
+## # The following are required to uses Dart and the Cdash dashboard
+##   ENABLE_TESTING()
+##   INCLUDE(Dart)
+set(CTEST_PROJECT_NAME "OTB")
+set(CTEST_NIGHTLY_START_TIME "20:00:00 CEST")

-IF(NOT DEFINED CTEST_DROP_METHOD)
-  SET(CTEST_DROP_METHOD "http")
-ENDIF(NOT DEFINED CTEST_DROP_METHOD)
-
-IF(CTEST_DROP_METHOD STREQUAL "http")
-  SET(CTEST_DROP_SITE "www.orfeo-toolbox.org")
-  SET(CTEST_DROP_LOCATION "/Dashboard/submit.php?project=OTB")
-  SET(CTEST_TRIGGER_SITE "")
-ENDIF(CTEST_DROP_METHOD STREQUAL "http")
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "www.orfeo-toolbox.org")
+set(CTEST_DROP_LOCATION "/Dashboard/submit.php?project=OTB")
+set(CTEST_DROP_SITE_CDASH TRUE)


ENH: correct nightly start time to match cdash's start time, this should fix the mysterious 1 day delayed nightly dashboards on RogueResearch, Dash14 and any others that run a VTK build between 9:00 & 10:00 PM.

--- CTestConfig.cmake
+++ CTestConfig.cmake
@@ -1,5 +1,5 @@
 set(CTEST_PROJECT_NAME "VTK")
-set(CTEST_NIGHTLY_START_TIME "22:00:00 EDT")
+set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC")


Revert CTestConfig.cmake to publish results to RTK dashboard

--- CTestConfig.cmake
+++ CTestConfig.cmake
@@ -1,15 +1,7 @@
-# set(CTEST_PROJECT_NAME "RTK")
-# set(CTEST_NIGHTLY_START_TIME "1:00:00 UTC")
-
-# set(CTEST_DROP_METHOD "http")
-# set(CTEST_DROP_SITE "my.cdash.org")
-# set(CTEST_DROP_LOCATION "/submit.php?project=RTK")
-# set(CTEST_DROP_SITE_CDASH TRUE)
-
-set(CTEST_PROJECT_NAME "ITK")
+set(CTEST_PROJECT_NAME "RTK")
 set(CTEST_NIGHTLY_START_TIME "1:00:00 UTC")

 set(CTEST_DROP_METHOD "http")
-set(CTEST_DROP_SITE "open.cdash.org")
-set(CTEST_DROP_LOCATION "/submit.php?project=Insight")
+set(CTEST_DROP_SITE "my.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=RTK")
 set(CTEST_DROP_SITE_CDASH TRUE)


CTest: Updated CTestConfig.cmake to new CDash on jwein2.

--- CTestConfig.cmake
+++ CTestConfig.cmake
@@ -5,9 +5,9 @@
 ##   ENABLE_TESTING()
 ##   INCLUDE(CTest)
 set(CTEST_PROJECT_NAME "ViennaMath")
-set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
+set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC")

 set(CTEST_DROP_METHOD "http")
-set(CTEST_DROP_SITE "my.cdash.org")
-set(CTEST_DROP_LOCATION "/submit.php?project=ViennaMath")
+set(CTEST_DROP_SITE "jwein2.iue.tuwien.ac.at:50000")
+set(CTEST_DROP_LOCATION "/CDash/submit.php?project=ViennaMath")
 set(CTEST_DROP_SITE_CDASH TRUE)


FIX (#6517): remove flawed compiler version detection on Windows since it disturbs the superbuild

--- DartConfig.cmake
+++ DartConfig.cmake
@@ -57,11 +57,6 @@
     ARGS --version
     OUTPUT_VARIABLE COMPILER_OUTPUT
   )
-ELSE(CMAKE_COMPILER_IS_GNUCXX)
-  MESSAGE(STATUS "Compiler is not GCC")
-  EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
-    OUTPUT_VARIABLE COMPILER_OUTPUT
-  )
 ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 MESSAGE(STATUS "Compiler version output: ${COMPILER_OUTPUT}")


reverting previous change to https, modified server instead


ENH: DELIVER_CONTINUOUS_EMAIL moved to Dart.cmake module (now a cache value)

--- DartConfig.cmake
+++ DartConfig.cmake
@@ -23,7 +23,6 @@
 SET (GNATS_WEB_URL "http://${DROP_SITE}/cgi-bin/gnatsweb.pl/Insight/")

 # Continuous email delivery variables
-SET (DELIVER_CONTINUOUS_EMAIL "Off")
 SET (CONTINUOUS_FROM "lorensen@crd.ge.com")
 SET (SMTP_MAILHOST "public.kitware.com")
 SET (CONTINUOUS_MONITOR_LIST "lorensen@crd.ge.com millerjv@crd.ge.com")


cmake: Remove commented code

cmake: Remove commented code


extension building test

extension building test

--- SuperBuild.cmake
+++ SuperBuild.cmake
@@ -5,7 +5,7 @@
 message(STATUS "-----------------------------reading SuperBuild.cmake------------------------------")

 if (DEFINED ${LOCAL_PROJECT_NAME}_BUILD_SLICER_EXTENSION)
-message(STATUS "-----------------------------BUILD_SLICER_EXTENSION defined------------------------------")
+message(STATUS "-----------------------------BUILD_SLICER_EXTENSION defined------------------------------  ${Slicer_DIR} ")
 set(extension_args "-DSlicer_DIR=${Slicer_DIR} -DSlicer_EXTENSION_DESCRIPTION_DIR=${Slicer_EXTENSION_DESCRIPTION_DIR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
 else()
 message(STATUS "-----------------------------BUILD_SLICER_EXTENSION not defined------------------------------")


Fixed yaml-cpp.pc file (with prefix)

Fixed yaml-cpp.pc file (with prefix)

--- yaml-cpp.pc.cmake
+++ yaml-cpp.pc.cmake
@@ -1,7 +1,7 @@
 prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
-libdir=@LIB_INSTALL_DIR@
-includedir=@INCLUDE_INSTALL_DIR@
+libdir=${prefix}/@LIB_INSTALL_DIR@
+includedir=${prefix}/@INCLUDE_INSTALL_DIR@

 Name: Yaml-cpp
 Description: A YAML parser and emitter for C++


Separate code from specification for managed GitExternals

--- GitExternal.cmake
+++ GitExternal.cmake
@@ -1,21 +1,14 @@
 # configures an external git repository
 # Usage:
-#  git_external(<directory> <giturl> <gittag> [RESET <files>])
+#  * Automatically reads, parses and updates a .gitexternals file if it only
+#    contains lines in the form "# <directory> <giturl> <gittag>".
+#    This function parses the file for this pattern and then calls
+#    git_external on each found entry. Additionally it provides an
+#    update target to bump the tag to the master revision by
+#    recreating .gitexternals.
+#  * Provides function
+#    git_external(<directory> <giturl> <gittag> [RESET <files>])
 #  git_external_manage(<file>)
-#    is used for a managed .gitexternal file which is parsed and
-#    updated by this function, which calls git_external and provides
-#    an update target to bump the tag to the master revision by
-#    recreating the given file. The file has to contain:
-#      include(GitExternal)
-#      git_external_manage(${CMAKE_CURRENT_LIST_FILE})
-#      #-> CMake/common https://github.com/Eyescale/CMake.git 8324611
-#    Where the last line can appear multiple times, once for each
-#    external repo It has to start with '#->'. This function parses
-#    the file for this pattern and then calls git_external on each
-#    found entry. The entries are encoded into a target which will
-#    recreate the file on invocation. Since only the '#-> ' lines are
-#    parsed, everything else is ignored. Since the file is under git
-#    control, there should be no risk of data loss.

 find_package(Git)
 if(NOT GIT_EXECUTABLE)
@@ -23,74 +16,6 @@
 endif()

 include(CMakeParseArguments)
-
-function(GIT_EXTERNAL_MANAGE FILE)
-  if(NOT EXISTS ${FILE})
-    message(FATAL_ERROR "Can't open ${FILE}")
-  endif()
-
-  file(READ ${FILE} GIT_EXTERNAL_FILE)
-  string(REGEX REPLACE "\n" ";" GIT_EXTERNAL_FILE "${GIT_EXTERNAL_FILE}")
-  foreach(LINE ${GIT_EXTERNAL_FILE})
-    string(REGEX REPLACE "^#->[ ]*(.+[ ]+.+[ ]+.+)$" "\\1" DATA ${LINE})
-    if(NOT LINE STREQUAL DATA)
-      string(REGEX REPLACE "[ ]+" ";" DATA "${DATA}")
-      list(LENGTH DATA DATA_LENGTH)
-      if(DATA_LENGTH EQUAL 3)
-        list(GET DATA 0 DIR)
-        list(GET DATA 1 REPO)
-        list(GET DATA 2 TAG)
-
-        # pull in identified external
-        git_external(${DIR} ${REPO} ${TAG})
-
-        # Create update script and target to bump external spec
-        if(NOT TARGET update)
-          add_custom_target(update)
-        endif()
-        if(NOT TARGET update_git_external)
-          add_custom_target(update_git_external)
-          add_dependencies(update update_git_external)
-        endif()
-        if(NOT TARGET update_git_external_header)
-          set(GIT_EXTERNAL_SCRIPT
-            "${CMAKE_CURRENT_BINARY_DIR}/gitupdateexternal.cmake")
-          file(WRITE "${GIT_EXTERNAL_SCRIPT}"
-            "file(WRITE ${FILE} \"# -*- mode: cmake -*-
-include(GitExternal)
-git_external_manage(\\\${CMAKE_CURRENT_LIST_FILE})
-\")")
-          add_custom_target(update_git_external_header
-            COMMAND ${CMAKE_COMMAND} -P ${GIT_EXTERNAL_SCRIPT}
-            COMMENT "Recreate ${FILE}"
-            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
-        endif()
-
-        string(REPLACE "/" "_" GIT_EXTERNAL_NAME ${DIR}) # unique, flat name
-        set(GIT_EXTERNAL_SCRIPT
-          "${CMAKE_CURRENT_BINARY_DIR}/gitupdate${GIT_EXTERNAL_NAME}.cmake")
-        file(WRITE "${GIT_EXTERNAL_SCRIPT}" "
-execute_process(COMMAND ${GIT_EXECUTABLE} fetch --all -q
-  WORKING_DIRECTORY ${DIR})
-execute_process(
-  COMMAND ${GIT_EXECUTABLE} show-ref --hash=7 refs/remotes/origin/master
-  OUTPUT_VARIABLE newref WORKING_DIRECTORY ${DIR})
-if(newref)
-  file(APPEND ${FILE} \"#-> ${DIR} ${REPO} \${newref}\n\")
-else()
-  file(APPEND ${FILE} \"#-> ${DIR} ${REPO} ${TAG}\n\")
-endif()")
-        add_custom_target(update_git_external_${GIT_EXTERNAL_NAME}
-          COMMAND ${CMAKE_COMMAND} -P ${GIT_EXTERNAL_SCRIPT}
-          COMMENT "Update ${REPO} in ${FILE}"
-          DEPENDS update_git_external_header
-          WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
-        add_dependencies(update_git_external
-          update_git_external_${GIT_EXTERNAL_NAME})
-      endif()
-    endif()
-  endforeach()
-endfunction()

 function(GIT_EXTERNAL DIR REPO TAG)
   cmake_parse_arguments(GIT_EXTERNAL "" "" "RESET" ${ARGN})
@@ -137,3 +62,69 @@
     endif()
   endif()
 endfunction()
+
+set(GIT_EXTERNALS "${CMAKE_CURRENT_SOURCE_DIR}/.gitexternals")
+if(EXISTS ${GIT_EXTERNALS})
+  file(READ ${GIT_EXTERNALS} GIT_EXTERNAL_FILE)
+  string(REGEX REPLACE "\n" ";" GIT_EXTERNAL_FILE "${GIT_EXTERNAL_FILE}")
+  foreach(LINE ${GIT_EXTERNAL_FILE})
+    if(NOT LINE MATCHES "^#.*$")
+      message(FATAL_ERROR "${GIT_EXTERNALS} contains non-comment line: ${LINE}")
+    endif()
+    string(REGEX REPLACE "^#[ ]*(.+[ ]+.+[ ]+.+)$" "\\1" DATA ${LINE})
+    if(NOT LINE STREQUAL DATA)
+      string(REGEX REPLACE "[ ]+" ";" DATA "${DATA}")
+      list(LENGTH DATA DATA_LENGTH)
+      if(DATA_LENGTH EQUAL 3)
+        list(GET DATA 0 DIR)
+        list(GET DATA 1 REPO)
+        list(GET DATA 2 TAG)
+
+        # pull in identified external
+        git_external(${DIR} ${REPO} ${TAG})
+
+        # Create update script and target to bump external spec
+        if(NOT TARGET update)
+          add_custom_target(update)
+        endif()
+        if(NOT TARGET update_git_external)
+          add_custom_target(update_git_external)
+          add_dependencies(update update_git_external)
+        endif()
+        if(NOT TARGET update_git_external_header)
+          set(GIT_EXTERNAL_SCRIPT
+            "${CMAKE_CURRENT_BINARY_DIR}/gitupdateexternal.cmake")
+          file(WRITE "${GIT_EXTERNAL_SCRIPT}"
+            "file(WRITE ${GIT_EXTERNALS} \"# -*- mode: cmake -*-\n\")\n")
+          add_custom_target(update_git_external_header
+            COMMAND ${CMAKE_COMMAND} -P ${GIT_EXTERNAL_SCRIPT}
+            COMMENT "Recreate ${GIT_EXTERNALS}"
+            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+        endif()
+
+        string(REPLACE "/" "_" GIT_EXTERNAL_NAME ${DIR}) # unique, flat name
+        set(GIT_EXTERNAL_SCRIPT
+          "${CMAKE_CURRENT_BINARY_DIR}/gitupdate${GIT_EXTERNAL_NAME}.cmake")
+        file(WRITE "${GIT_EXTERNAL_SCRIPT}" "
+execute_process(COMMAND ${GIT_EXECUTABLE} fetch --all -q
+  WORKING_DIRECTORY ${DIR})
+execute_process(
+  COMMAND ${GIT_EXECUTABLE} show-ref --hash=7 refs/remotes/origin/master
+  OUTPUT_VARIABLE newref WORKING_DIRECTORY ${DIR})
+if(newref)
+  file(APPEND ${GIT_EXTERNALS} \"# ${DIR} ${REPO} \${newref}\n\")
+else()
+  file(APPEND ${GIT_EXTERNALS} \"# ${DIR} ${REPO} ${TAG}\n\")
+endif()")
+        add_custom_target(update_git_external_${GIT_EXTERNAL_NAME}
+          COMMAND ${CMAKE_COMMAND} -P ${GIT_EXTERNAL_SCRIPT}
+          COMMENT "Update ${REPO} in ${GIT_EXTERNALS}"
+          DEPENDS update_git_external_header
+          WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+        add_dependencies(update_git_external
+          update_git_external_${GIT_EXTERNAL_NAME})
+      endif()
+    endif()
+  endforeach()
+  include(${GIT_EXTERNALS})
+endif()


Add lots of warning switches.

Add lots of warning switches.

--- clang.cmake
+++ clang.cmake
@@ -1,7 +1,7 @@
 SET (CMAKE_C_COMPILER "clang")
 SET (CMAKE_CXX_COMPILER "clang++")

-SET(CMAKE_C_FLAGS "-pipe -Wall -Wextra -pedantic -std=c99" CACHE STRING "" FORCE)
+SET(CMAKE_C_FLAGS "-pipe -Wall -Wextra -Wfloat-equal -Wformat=2 -Wimplicit-atomic-properties -Wmissing-declarations -Wmissing-prototypes -Woverlength-strings -Wshadow -Wstrict-selector-match -Wundeclared-selector -Wunreachable-code -pedantic -std=c99" CACHE STRING "" FORCE)

 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fomit-frame-pointer" CACHE STRING "" FORCE)
 SET(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb" CACHE STRING "" FORCE)


Fix capnpc generator and make sure .capnp schema show up in editor list.

--- external/CapnProto.cmake
+++ external/CapnProto.cmake
@@ -73,7 +73,8 @@
     COMMAND ${CAPNP_EXECUTABLE}
         compile -o ${CAPNPC_CXX_EXECUTABLE}:${TARGET_DIR}
         --src-prefix ${SRC_PREFIX} -I ${INCLUDE_DIR}
-        ${CAPNP_SPECS}
+        ${SPEC_FILES}
+    SOURCES ${SPEC_FILES}
     DEPENDS CapnProto
     COMMENT "Executing Cap'n Proto compiler"
   )


commit forgotten pre-processed smarts lexer

--- Code/GraphMol/SmilesParse/lex.yysmarts.cpp.cmake
+++ Code/GraphMol/SmilesParse/lex.yysmarts.cpp.cmake
@@ -1,6 +1,6 @@
-#line 2 "/Users/landrgr1/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"
-
-#line 4 "/Users/landrgr1/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"
+#line 2 "/scratch/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"
+
+#line 4 "/scratch/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"

 #define  YY_INT_ALIGNED short int

@@ -47,7 +47,6 @@
 typedef uint16_t flex_uint16_t;
 typedef int32_t flex_int32_t;
 typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
 #else
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
@@ -55,7 +54,6 @@
 typedef unsigned char flex_uint8_t;
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */

 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -85,6 +83,8 @@
 #ifndef UINT32_MAX
 #define UINT32_MAX             (4294967295U)
 #endif
+
+#endif /* ! C99 */

 #endif /* ! FLEXINT_H */

@@ -159,7 +159,15 @@

 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif

 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -169,11 +177,6 @@
 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
 #define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
 #endif

 #define EOB_ACT_CONTINUE_SCAN 0
@@ -198,6 +201,11 @@

 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )

+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
 #ifndef YY_STRUCT_YY_BUFFER_STATE
 #define YY_STRUCT_YY_BUFFER_STATE
 struct yy_buffer_state
@@ -215,7 +223,7 @@
 	/* Number of characters read into yy_ch_buf, not including EOB
 	 * characters.
 	 */
-	yy_size_t yy_n_chars;
+	int yy_n_chars;

 	/* Whether we "own" the buffer - i.e., we know we created it,
 	 * and can realloc() it to grow it, and should free() it to
@@ -294,7 +302,7 @@

 YY_BUFFER_STATE yysmarts__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
 YY_BUFFER_STATE yysmarts__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
-YY_BUFFER_STATE yysmarts__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
+YY_BUFFER_STATE yysmarts__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );

 void *yysmarts_alloc (yy_size_t ,yyscan_t yyscanner );
 void *yysmarts_realloc (void *,yy_size_t ,yyscan_t yyscanner );
@@ -345,13 +353,13 @@
  */
 #define YY_DO_BEFORE_ACTION \
 	yyg->yytext_ptr = yy_bp; \
-	yyleng = (yy_size_t) (yy_cp - yy_bp); \
+	yyleng = (size_t) (yy_cp - yy_bp); \
 	yyg->yy_hold_char = *yy_cp; \
 	*yy_cp = '\0'; \
 	yyg->yy_c_buf_p = yy_cp;

-#define YY_NUM_RULES 157
-#define YY_END_OF_BUFFER 158
+#define YY_NUM_RULES 158
+#define YY_END_OF_BUFFER 159
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -359,29 +367,29 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[194] =
+static yyconst flex_int16_t yy_accept[195] =
     {   0,
-        0,    0,    0,    0,    0,    0,    0,    0,  158,  156,
-      155,  147,  131,  144,  149,  137,  124,  130,  150,  129,
-      143,  135,  145,  146,  127,  148,  132,    6,  126,  107,
-      108,  111,  106,  116,  109,  110,  112,  113,  140,  134,
-      142,  156,  128,  125,  117,  118,  119,  120,  121,  133,
-      156,  126,  107,  108,   99,  156,  111,  156,  106,  116,
-       16,  156,  156,  109,  110,  112,  104,  113,  156,   87,
-       20,   69,  100,   35,  156,  141,  103,  105,  121,  156,
-      102,  101,  138,  139,    0,    0,    0,    0,    0,    0,
-      115,  114,  134,  151,  152,  153,  154,  136,   84,   43,
-
-       13,   90,   15,   30,   80,   74,   51,    9,   78,   92,
-       17,   44,   53,   93,   91,   23,   21,   50,   26,   61,
-       63,   94,   58,   24,   95,   82,   28,   59,   29,    7,
-       67,   75,   62,   45,   72,   32,   52,    8,   98,   66,
-       96,   12,   22,   38,   11,   37,   55,   10,   25,   97,
-       88,   71,   86,   77,   42,   56,   79,   54,   73,   89,
-       83,   33,   70,   41,   81,   40,   47,   18,   31,   14,
-       57,   46,   34,   68,   60,   39,   48,   85,   19,   76,
-       64,   49,   65,   27,   36,  122,  123,    2,    4,    5,
-        3,    1,    0
+        0,    0,    0,    0,    0,    0,    0,    0,  159,  157,
+      156,  148,  132,  145,  150,  138,  125,  131,  151,  130,
+      144,  136,  146,  147,  128,  149,  133,    6,  127,  107,
+      108,  111,  106,  116,  109,  110,  112,  113,  141,  135,
+      143,  157,  129,  126,  117,  118,  119,  120,  121,  122,
+      134,  157,  127,  107,  108,   99,  157,  111,  157,  106,
+      116,   16,  157,  157,  109,  110,  112,  104,  113,  157,
+       87,   20,   69,  100,   35,  157,  142,  103,  105,  122,
+      157,  102,  101,  139,  140,    0,    0,    0,    0,    0,
+        0,  115,  114,  135,  152,  153,  154,  155,  137,   84,
+
+       43,   13,   90,   15,   30,   80,   74,   51,    9,   78,
+       92,   17,   44,   53,   93,   91,   23,   21,   50,   26,
+       61,   63,   94,   58,   24,   95,   82,   28,   59,   29,
+        7,   67,   75,   62,   45,   72,   32,   52,    8,   98,
+       66,   96,   12,   22,   38,   11,   37,   55,   10,   25,
+       97,   88,   71,   86,   77,   42,   56,   79,   54,   73,
+       89,   83,   33,   70,   41,   81,   40,   47,   18,   31,
+       14,   57,   46,   34,   68,   60,   39,   48,   85,   19,
+       76,   64,   49,   65,   27,   36,  123,  124,    2,    4,
+        5,    3,    1,    0

     } ;

@@ -429,18 +437,18 @@
         1,    1,    1,    1,    1,    1,    1,    1
     } ;

-static yyconst flex_int16_t yy_base[194] =
+static yyconst flex_int16_t yy_base[195] =
     {   0,
         0,    0,   73,    0,  189,  188,  187,  183,  189,  266,
       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
       266,  266,  266,  266,  266,  266,  266,  111,  266,  103,
       106,  266,  266,  266,  266,  266,  266,  266,  266,  116,
       266,   63,  266,  266,  266,  266,  266,  266,  266,  266,
-      158,   85,   68,  104,   89,   13,   26,   32,  119,   27,
-       91,  113,   72,  126,   89,  135,  154,  163,  179,  266,
-      266,  266,   93,   85,   59,  266,  266,  266,   75,   69,
-      266,  266,  266,  266,  221,   89,   56,   61,   49,   56,
-      266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
+      266,  158,   85,   68,  104,   89,   13,   26,   32,  119,
+       27,   91,  113,   72,  126,   89,  135,  154,  163,  179,
+      266,  266,  266,   93,   85,   59,  266,  266,  266,   75,
+       69,  266,  266,  266,  266,  221,   89,   56,   61,   49,
+       56,  266,  266,  266,  266,  266,  266,  266,  266,  266,

       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
@@ -451,33 +459,33 @@
       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
-      266,  266,  266
+      266,  266,  266,  266

     } ;

-static yyconst flex_int16_t yy_def[194] =
+static yyconst flex_int16_t yy_def[195] =
     {   0,
-      193,    1,    1,    3,    1,    1,    1,    1,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,    0
+      194,    1,    1,    3,    1,    1,    1,    1,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,    0

     } ;

@@ -488,39 +496,39 @@
        24,   25,   26,   27,   28,   29,   30,   31,   10,   10,
        32,   10,   33,   34,   10,   10,   10,   35,   36,   37,
        10,   10,   38,   10,   10,   10,   10,   10,   10,   10,
-       39,   40,   41,   42,   43,   44,   10,   45,   10,   10,
-       10,   10,   10,   10,   10,   10,   10,   46,   47,   48,
-       10,   49,   10,   10,   10,   10,   10,   50,   51,   94,
-       95,   96,   97,  121,  122,  124,  123,  127,  192,  191,
-      128,  129,  125,  190,  134,  189,  126,  135,   52,   53,
-
-       54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
-       64,   65,   66,   85,   67,   68,   69,   70,   71,   72,
-       73,   74,   75,  107,  188,   76,  184,  108,  187,  185,
-      141,  109,  110,  142,  186,   77,   86,   87,   91,  143,
-      144,  183,   99,   78,   79,   80,  100,   81,   82,   88,
-      101,  102,  182,   89,   90,  103,  104,  105,  106,  111,
-      152,  136,  112,  113,  114,  120,   98,   93,  137,   92,
-      115,   92,  116,   91,  117,  118,  138,  119,  130,  131,
-      132,  145,  146,  139,  147,  148,  140,  133,  193,  149,
-      153,  154,   84,  155,  150,  151,   84,   83,   83,  193,
-
-      193,  156,  193,  157,  193,  158,  193,  159,  160,  161,
-      162,  193,  193,  163,  193,  193,  164,  193,  193,  167,
-      168,  165,  169,   85,  193,  193,  170,  166,  193,  171,
-      172,  193,  193,  173,  174,  175,  176,  193,  177,  193,
-      193,  178,  179,  193,  180,  181,   86,   87,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,   88,
-      193,  193,  193,   89,   90,    9,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193
+       39,   40,   41,   42,   43,   44,   45,   46,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   47,   48,   49,
+       10,   50,   10,   10,   10,   10,   10,   51,   52,   95,
+       96,   97,   98,  122,  123,  125,  124,  128,  193,  192,
+      129,  130,  126,  191,  135,  190,  127,  136,   53,   54,
+
+       55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
+       65,   66,   67,   86,   68,   69,   70,   71,   72,   73,
+       74,   75,   76,  108,  189,   77,  185,  109,  188,  186,
+      142,  110,  111,  143,  187,   78,   87,   88,   92,  144,
+      145,  184,  100,   79,   80,   81,  101,   82,   83,   89,
+      102,  103,  183,   90,   91,  104,  105,  106,  107,  112,
+      153,  137,  113,  114,  115,  121,   99,   94,  138,   93,
+      116,   93,  117,   92,  118,  119,  139,  120,  131,  132,
+      133,  146,  147,  140,  148,  149,  141,  134,  194,  150,
+      154,  155,   85,  156,  151,  152,   85,   84,   84,  194,
+
+      194,  157,  194,  158,  194,  159,  194,  160,  161,  162,
+      163,  194,  194,  164,  194,  194,  165,  194,  194,  168,
+      169,  166,  170,   86,  194,  194,  171,  167,  194,  172,
+      173,  194,  194,  174,  175,  176,  177,  194,  178,  194,
+      194,  179,  180,  194,  181,  182,   87,   88,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,   89,
+      194,  194,  194,   90,   91,    9,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194
     } ;

 static yyconst flex_int16_t yy_chk[345] =
@@ -533,36 +541,36 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    3,   42,
-       42,   42,   42,   56,   56,   57,   56,   58,   90,   89,
-       58,   58,   57,   88,   60,   87,   57,   60,    3,    3,
+       42,   42,   42,   57,   57,   58,   57,   59,   91,   90,
+       59,   59,   58,   89,   61,   88,   58,   61,    3,    3,

         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,   28,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,   53,   86,    3,   75,   53,   80,   75,
-       63,   53,   53,   63,   79,    3,   28,   28,   53,   63,
-       63,   74,   52,    3,    3,    3,   52,    3,    3,   28,
-       52,   52,   73,   28,   28,   52,   52,   52,   52,   54,
-       65,   61,   54,   54,   54,   55,   51,   40,   62,   54,
-       54,   31,   54,   30,   54,   54,   62,   54,   59,   59,
-       59,   64,   64,   62,   64,   64,   62,   59,    9,   64,
-       66,   66,    8,   66,   64,   64,    7,    6,    5,    0,
-
-        0,   66,    0,   66,    0,   66,    0,   66,   66,   67,
-       67,    0,    0,   67,    0,    0,   67,    0,    0,   68,
-       68,   67,   68,   85,    0,    0,   68,   67,    0,   68,
-       68,    0,    0,   68,   69,   69,   69,    0,   69,    0,
-        0,   69,   69,    0,   69,   69,   85,   85,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   85,
-        0,    0,    0,   85,   85,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  193,  193,  193
+        3,    3,    3,   54,   87,    3,   76,   54,   81,   76,
+       64,   54,   54,   64,   80,    3,   28,   28,   54,   64,
+       64,   75,   53,    3,    3,    3,   53,    3,    3,   28,
+       53,   53,   74,   28,   28,   53,   53,   53,   53,   55,
+       66,   62,   55,   55,   55,   56,   52,   40,   63,   55,
+       55,   31,   55,   30,   55,   55,   63,   55,   60,   60,
+       60,   65,   65,   63,   65,   65,   63,   60,    9,   65,
+       67,   67,    8,   67,   65,   65,    7,    6,    5,    0,
+
+        0,   67,    0,   67,    0,   67,    0,   67,   67,   68,
+       68,    0,    0,   68,    0,    0,   68,    0,    0,   69,
+       69,   68,   69,   86,    0,    0,   69,   68,    0,   69,
+       69,    0,    0,   69,   70,   70,   70,    0,   70,    0,
+        0,   70,   70,    0,   70,   70,   86,   86,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   86,
+        0,    0,    0,   86,   86,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194
     } ;

 /* The intent behind this definition is that it'll catch
@@ -613,7 +621,7 @@

-#line 617 "/Users/landrgr1/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"
+#line 625 "/scratch/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"

 #define INITIAL 0
 #define IN_ATOM_STATE 1
@@ -645,8 +653,8 @@
     size_t yy_buffer_stack_max; /**< capacity of stack. */
     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
     char yy_hold_char;
-    yy_size_t yy_n_chars;
-    yy_size_t yyleng_r;
+    int yy_n_chars;
+    int yyleng_r;
     char *yy_c_buf_p;
     int yy_init;
     int yy_start;
@@ -699,7 +707,7 @@

 void yysmarts_set_out  (FILE * out_str ,yyscan_t yyscanner );

-yy_size_t yysmarts_get_leng (yyscan_t yyscanner );
+int yysmarts_get_leng (yyscan_t yyscanner );

 char *yysmarts_get_text (yyscan_t yyscanner );

@@ -751,7 +759,12 @@

 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif

 /* Copy whatever the last rule matched to the standard output. */
@@ -759,7 +772,7 @@
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
 #endif

 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -770,7 +783,7 @@
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		yy_size_t n; \
+		size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -858,7 +871,7 @@
 #line 47 "smarts.ll"

-#line 862 "/Users/landrgr1/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"
+#line 875 "/scratch/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"

     yylval = yylval_param;

@@ -913,7 +926,7 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 194 )
+				if ( yy_current_state >= 195 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1271,50 +1284,55 @@
 case 117:
 YY_RULE_SETUP
 #line 218 "smarts.ll"
+{  yylval->ival = 5;  return AROMATIC_ATOM_TOKEN;  }
+	YY_BREAK
+case 118:
+YY_RULE_SETUP
+#line 220 "smarts.ll"
 {  yylval->ival = 6;  return AROMATIC_ATOM_TOKEN;  }
 	YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 220 "smarts.ll"
+case 119:
+YY_RULE_SETUP
+#line 222 "smarts.ll"
 {  yylval->ival = 7;  return AROMATIC_ATOM_TOKEN;  }
 	YY_BREAK
-case 119:
-YY_RULE_SETUP
-#line 222 "smarts.ll"
+case 120:
+YY_RULE_SETUP
+#line 224 "smarts.ll"
 {  yylval->ival = 8;  return AROMATIC_ATOM_TOKEN;  }
 	YY_BREAK
-case 120:
-YY_RULE_SETUP
-#line 224 "smarts.ll"
+case 121:
+YY_RULE_SETUP
+#line 226 "smarts.ll"
 {  yylval->ival = 15;  return AROMATIC_ATOM_TOKEN;  }
 	YY_BREAK
-case 121:
-YY_RULE_SETUP
-#line 226 "smarts.ll"
+case 122:
+YY_RULE_SETUP
+#line 228 "smarts.ll"
 {  yylval->ival = 16;  return AROMATIC_ATOM_TOKEN;  }
 	YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 228 "smarts.ll"
+case 123:
+YY_RULE_SETUP
+#line 230 "smarts.ll"
 {  yylval->ival = 34;  return AROMATIC_ATOM_TOKEN;  }
 	YY_BREAK
-case 123:
-YY_RULE_SETUP
-#line 230 "smarts.ll"
+case 124:
+YY_RULE_SETUP
+#line 232 "smarts.ll"
 {  yylval->ival = 52;  return AROMATIC_ATOM_TOKEN;  }
 	YY_BREAK
-case 124:
-YY_RULE_SETUP
-#line 233 "smarts.ll"
+case 125:
+YY_RULE_SETUP
+#line 236 "smarts.ll"
 {
 	yylval->atom = new QueryAtom();
 	yylval->atom->setQuery(makeAtomNullQuery());
 	return SIMPLE_ATOM_QUERY_TOKEN;
 }
 	YY_BREAK
-case 125:
-YY_RULE_SETUP
-#line 239 "smarts.ll"
+case 126:
+YY_RULE_SETUP
+#line 242 "smarts.ll"
 {
 	yylval->atom = new QueryAtom();
 	yylval->atom->setQuery(makeAtomAromaticQuery());
@@ -1322,101 +1340,101 @@
 	return SIMPLE_ATOM_QUERY_TOKEN;
 }
 	YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 246 "smarts.ll"
+case 127:
+YY_RULE_SETUP
+#line 249 "smarts.ll"
 {
 	yylval->atom = new QueryAtom();
 	yylval->atom->setQuery(makeAtomAliphaticQuery());
 	return SIMPLE_ATOM_QUERY_TOKEN;
 }
 	YY_BREAK
-case 127:
-YY_RULE_SETUP
-#line 253 "smarts.ll"
+case 128:
+YY_RULE_SETUP
+#line 256 "smarts.ll"
 { return COLON_TOKEN; }
 	YY_BREAK
-case 128:
-YY_RULE_SETUP
-#line 255 "smarts.ll"
+case 129:
+YY_RULE_SETUP
+#line 258 "smarts.ll"
 { return UNDERSCORE_TOKEN; }
 	YY_BREAK
-case 129:
-YY_RULE_SETUP
-#line 257 "smarts.ll"
+case 130:
+YY_RULE_SETUP
+#line 260 "smarts.ll"
 { return MINUS_TOKEN; }
 	YY_BREAK
-case 130:
-YY_RULE_SETUP
-#line 259 "smarts.ll"
+case 131:
+YY_RULE_SETUP
+#line 262 "smarts.ll"
 { return PLUS_TOKEN; }
 	YY_BREAK
-case 131:
-YY_RULE_SETUP
-#line 261 "smarts.ll"
+case 132:
+YY_RULE_SETUP
+#line 264 "smarts.ll"
 { return HASH_TOKEN; }
 	YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 263 "smarts.ll"
+case 133:
+YY_RULE_SETUP
+#line 266 "smarts.ll"
 { yylval->bond = new QueryBond(Bond::DOUBLE);
 	yylval->bond->setQuery(makeBondOrderEqualsQuery(Bond::DOUBLE));
 	return BOND_TOKEN;  }
 	YY_BREAK
-case 133:
-YY_RULE_SETUP
-#line 267 "smarts.ll"
+case 134:
+YY_RULE_SETUP
+#line 270 "smarts.ll"
 { yylval->bond = new QueryBond();
 	yylval->bond->setQuery(makeBondNullQuery());
 	return BOND_TOKEN;  }
 	YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 271 "smarts.ll"
+case 135:
+YY_RULE_SETUP
+#line 274 "smarts.ll"
 { yylval->bond = new QueryBond(Bond::SINGLE);
 	yylval->bond->setBondDir(Bond::ENDDOWNRIGHT);
 	return BOND_TOKEN;  }
 	YY_BREAK
-case 135:
-YY_RULE_SETUP
-#line 275 "smarts.ll"
+case 136:
+YY_RULE_SETUP
+#line 278 "smarts.ll"
 { yylval->bond = new QueryBond(Bond::SINGLE);
 	yylval->bond->setBondDir(Bond::ENDUPRIGHT);
 	return BOND_TOKEN;  }
 	YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 280 "smarts.ll"
+case 137:
+YY_RULE_SETUP
+#line 283 "smarts.ll"
 { yy_push_state(IN_RECURSION_STATE,yyscanner); return BEGIN_RECURSE; }
 	YY_BREAK
-case 137:
-YY_RULE_SETUP
-#line 282 "smarts.ll"
+case 138:
+YY_RULE_SETUP
+#line 285 "smarts.ll"
 { yy_push_state(IN_BRANCH_STATE,yyscanner); return GROUP_OPEN_TOKEN; }
 	YY_BREAK
-case 138:
-YY_RULE_SETUP
-#line 283 "smarts.ll"
+case 139:
+YY_RULE_SETUP
+#line 286 "smarts.ll"
 { yy_pop_state(yyscanner); return GROUP_CLOSE_TOKEN; }
 	YY_BREAK
-case 139:
-YY_RULE_SETUP
-#line 284 "smarts.ll"
+case 140:
+YY_RULE_SETUP
+#line 287 "smarts.ll"
 { yy_pop_state(yyscanner); return END_RECURSE; }
 	YY_BREAK
-case 140:
-YY_RULE_SETUP
-#line 287 "smarts.ll"
+case 141:
+YY_RULE_SETUP
+#line 290 "smarts.ll"
 { yy_push_state(IN_ATOM_STATE,yyscanner); return ATOM_OPEN_TOKEN; }
 	YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 288 "smarts.ll"
+case 142:
+YY_RULE_SETUP
+#line 291 "smarts.ll"
 { yy_pop_state(yyscanner); return ATOM_CLOSE_TOKEN; }
 	YY_BREAK
-case 142:
-YY_RULE_SETUP
-#line 289 "smarts.ll"
+case 143:
+YY_RULE_SETUP
+#line 292 "smarts.ll"
 { /* FIX: ???
                            This rule is here because otherwise recursive SMARTS queries like:
 	                   [$(C(=O)[O,N])] lex improperly (no ATOM_CLOSE token is returned).
@@ -1426,106 +1444,106 @@
 			  */
                           return ATOM_CLOSE_TOKEN; }
 	YY_BREAK
-case 143:
-YY_RULE_SETUP
-#line 298 "smarts.ll"
+case 144:
+YY_RULE_SETUP
+#line 301 "smarts.ll"
 { return SEPARATOR_TOKEN; }
 	YY_BREAK
-case 144:
-YY_RULE_SETUP
-#line 300 "smarts.ll"
+case 145:
+YY_RULE_SETUP
+#line 303 "smarts.ll"
 { return PERCENT_TOKEN; }
 	YY_BREAK
-case 145:
-YY_RULE_SETUP
-#line 302 "smarts.ll"
+case 146:
+YY_RULE_SETUP
+#line 305 "smarts.ll"
 { yylval->ival = 0;  return ZERO_TOKEN; }
 	YY_BREAK
-case 146:
-YY_RULE_SETUP
-#line 303 "smarts.ll"
+case 147:
+YY_RULE_SETUP
+#line 306 "smarts.ll"
 { yylval->ival = yytext[0]-'0';  return NONZERO_DIGIT_TOKEN; }
 	YY_BREAK
-case 147:
-YY_RULE_SETUP
-#line 305 "smarts.ll"
+case 148:
+YY_RULE_SETUP
+#line 308 "smarts.ll"
 { return NOT_TOKEN; }
 	YY_BREAK
-case 148:
-YY_RULE_SETUP
-#line 307 "smarts.ll"
+case 149:
+YY_RULE_SETUP
+#line 310 "smarts.ll"
 { return SEMI_TOKEN; }
 	YY_BREAK
-case 149:
-YY_RULE_SETUP
-#line 309 "smarts.ll"
+case 150:
+YY_RULE_SETUP
+#line 312 "smarts.ll"
 { return AND_TOKEN; }
 	YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 311 "smarts.ll"
+case 151:
+YY_RULE_SETUP
+#line 314 "smarts.ll"
 { return OR_TOKEN; }
 	YY_BREAK
-case 151:
-YY_RULE_SETUP
-#line 313 "smarts.ll"
+case 152:
+YY_RULE_SETUP
+#line 316 "smarts.ll"
 {
 	yylval->atom = new QueryAtom();
 	yylval->atom->setQuery(makeAtomHybridizationQuery(Atom::S));
 	return HYB_TOKEN;
 }
 	YY_BREAK
-case 152:
-YY_RULE_SETUP
-#line 319 "smarts.ll"
+case 153:
+YY_RULE_SETUP
+#line 322 "smarts.ll"
 {
 	yylval->atom = new QueryAtom();
 	yylval->atom->setQuery(makeAtomHybridizationQuery(Atom::SP));
 	return HYB_TOKEN;
 }
 	YY_BREAK
-case 153:
-YY_RULE_SETUP
-#line 325 "smarts.ll"
+case 154:
+YY_RULE_SETUP
+#line 328 "smarts.ll"
 {
 	yylval->atom = new QueryAtom();
 	yylval->atom->setQuery(makeAtomHybridizationQuery(Atom::SP2));
 	return HYB_TOKEN;
 }
 	YY_BREAK
-case 154:
-YY_RULE_SETUP
-#line 331 "smarts.ll"
+case 155:
+YY_RULE_SETUP
+#line 334 "smarts.ll"
 {
 	yylval->atom = new QueryAtom();
 	yylval->atom->setQuery(makeAtomHybridizationQuery(Atom::SP3));
 	return HYB_TOKEN;
 }
 	YY_BREAK
-case 155:
-/* rule 155 can match eol */
-YY_RULE_SETUP
-#line 337 "smarts.ll"
+case 156:
+/* rule 156 can match eol */
+YY_RULE_SETUP
+#line 340 "smarts.ll"
 return EOS_TOKEN;
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(IN_ATOM_STATE):
 case YY_STATE_EOF(IN_BRANCH_STATE):
 case YY_STATE_EOF(IN_RECURSION_STATE):
-#line 339 "smarts.ll"
+#line 342 "smarts.ll"
 { return EOS_TOKEN; }
 	YY_BREAK
-case 156:
-YY_RULE_SETUP
-#line 340 "smarts.ll"
+case 157:
+YY_RULE_SETUP
+#line 343 "smarts.ll"
 return yytext[0];
 	YY_BREAK
-case 157:
-YY_RULE_SETUP
-#line 342 "smarts.ll"
+case 158:
+YY_RULE_SETUP
+#line 345 "smarts.ll"
 ECHO;
 	YY_BREAK
-#line 1529 "/Users/landrgr1/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"
+#line 1547 "/scratch/RDKit_git/Code/GraphMol/SmilesParse/lex.yysmarts.cpp"

 	case YY_END_OF_BUFFER:
 		{
@@ -1710,7 +1728,7 @@

 	else
 		{
-			yy_size_t num_to_read =
+			int num_to_read =
 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;

 		while ( num_to_read <= 0 )
@@ -1724,7 +1742,7 @@

 			if ( b->yy_is_our_buffer )
 				{
-				yy_size_t new_size = b->yy_buf_size * 2;
+				int new_size = b->yy_buf_size * 2;

 				if ( new_size <= 0 )
 					b->yy_buf_size += b->yy_buf_size / 8;
@@ -1755,7 +1773,7 @@

 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			yyg->yy_n_chars, num_to_read );
+			yyg->yy_n_chars, (size_t) num_to_read );

 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
 		}
@@ -1817,7 +1835,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 194 )
+			if ( yy_current_state >= 195 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1846,11 +1864,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 194 )
+		if ( yy_current_state >= 195 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 193);
+	yy_is_jam = (yy_current_state == 194);

 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -1868,7 +1886,7 @@
 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register yy_size_t number_to_move = yyg->yy_n_chars + 2;
+		register int number_to_move = yyg->yy_n_chars + 2;
 		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
 		register char *source =
@@ -1918,7 +1936,7 @@

 		else
 			{ /* need more input */
-			yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
+			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
 			++yyg->yy_c_buf_p;

 			switch ( yy_get_next_buffer( yyscanner ) )
@@ -1942,7 +1960,7 @@
 				case EOB_ACT_END_OF_FILE:
 					{
 					if ( yysmarts_wrap(yyscanner ) )
-						return 0;
+						return EOF;

 					if ( ! yyg->yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
@@ -2202,7 +2220,7 @@
  */
 static void yysmarts_ensure_buffer_stack (yyscan_t yyscanner)
 {
-	yy_size_t num_to_alloc;
+	int num_to_alloc;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;

 	if (!yyg->yy_buffer_stack) {
@@ -2295,16 +2313,17 @@

 /** Setup the input buffer state to scan the given bytes. The next call to yysmarts_lex() will
  * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * @param yyscanner The scanner object.
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yysmarts__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len , yyscan_t yyscanner)
+YY_BUFFER_STATE yysmarts__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
 {
 	YY_BUFFER_STATE b;
 	char *buf;
-	yy_size_t n, i;
+	yy_size_t n;
+	int i;

 	/* Get memory for full buffer, including space for trailing EOB's. */
 	n = _yybytes_len + 2;
@@ -2454,7 +2473,7 @@
 /** Get the length of the current token.
  * @param yyscanner The scanner object.
  */
-yy_size_t yysmarts_get_leng  (yyscan_t yyscanner)
+int yysmarts_get_leng  (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     return yyleng;
@@ -2729,7 +2748,7 @@

 #define YYTABLES_NAME "yytables"

-#line 342 "smarts.ll"
+#line 345 "smarts.ll"


* [CMake] BugFix: Clear several CMake warnings.

--- Tools/CMake/basics.cmake
+++ Tools/CMake/basics.cmake
@@ -364,10 +364,10 @@
 endmacro()

 macro(setupVersionNumbers)
-    set(TORQUE_APP_VERSION_MAJOR 1 CACHE INTEGER "")
-    set(TORQUE_APP_VERSION_MINOR 0 CACHE INTEGER "")
-    set(TORQUE_APP_VERSION_PATCH 0 CACHE INTEGER "")
-    set(TORQUE_APP_VERSION_TWEAK 0 CACHE INTEGER "")
+    set(TORQUE_APP_VERSION_MAJOR 1 CACHE STRING "")
+    set(TORQUE_APP_VERSION_MINOR 0 CACHE STRING "")
+    set(TORQUE_APP_VERSION_PATCH 0 CACHE STRING "")
+    set(TORQUE_APP_VERSION_TWEAK 0 CACHE STRING "")
     mark_as_advanced(TORQUE_APP_VERSION_TWEAK)
     MATH(EXPR TORQUE_APP_VERSION "${TORQUE_APP_VERSION_MAJOR} * 1000 + ${TORQUE_APP_VERSION_MINOR} * 100 + ${TORQUE_APP_VERSION_PATCH} * 10 + ${TORQUE_APP_VERSION_TWEAK}")
     set(TORQUE_APP_VERSION_STRING "${TORQUE_APP_VERSION_MAJOR}.${TORQUE_APP_VERSION_MINOR}.${TORQUE_APP_VERSION_PATCH}.${TORQUE_APP_VERSION_TWEAK}")
@@ -400,17 +400,17 @@
 #option(TORQUE_STATIC "enables or disable static" OFF)

 if(WIN32)
-    set(TORQUE_CXX_FLAGS_EXECUTABLES "/wd4018 /wd4100 /wd4121 /wd4127 /wd4130 /wd4244 /wd4245 /wd4389 /wd4511 /wd4512 /wd4800 /wd4995 " CACHE TYPE STRING)
+    set(TORQUE_CXX_FLAGS_EXECUTABLES "/wd4018 /wd4100 /wd4121 /wd4127 /wd4130 /wd4244 /wd4245 /wd4389 /wd4511 /wd4512 /wd4800 /wd4995 " CACHE STRING)
     mark_as_advanced(TORQUE_CXX_FLAGS_EXECUTABLES)

-    set(TORQUE_CXX_FLAGS_LIBS "/W0" CACHE TYPE STRING)
+    set(TORQUE_CXX_FLAGS_LIBS "/W0" CACHE STRING)
     mark_as_advanced(TORQUE_CXX_FLAGS_LIBS)

     set(TORQUE_CXX_FLAGS_COMMON_DEFAULT "-DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS /MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /fp:precise /fp:except- /GR /Zc:wchar_t-" )
     if( TORQUE_CPU_X32 )
        set(TORQUE_CXX_FLAGS_COMMON_DEFAULT "${TORQUE_CXX_FLAGS_COMMON_DEFAULT} /arch:SSE2")
     endif()
-    set(TORQUE_CXX_FLAGS_COMMON ${TORQUE_CXX_FLAGS_COMMON_DEFAULT} CACHE TYPE STRING)
+    set(TORQUE_CXX_FLAGS_COMMON ${TORQUE_CXX_FLAGS_COMMON_DEFAULT} CACHE STRING)

     mark_as_advanced(TORQUE_CXX_FLAGS_COMMON)

@@ -436,11 +436,11 @@
     endif()
 else()
     # TODO: improve default settings on other platforms
-    set(TORQUE_CXX_FLAGS_EXECUTABLES "" CACHE TYPE STRING)
+    set(TORQUE_CXX_FLAGS_EXECUTABLES "" CACHE STRING "")
     mark_as_advanced(TORQUE_CXX_FLAGS_EXECUTABLES)
-    set(TORQUE_CXX_FLAGS_LIBS "" CACHE TYPE STRING)
+    set(TORQUE_CXX_FLAGS_LIBS "" CACHE STRING "")
     mark_as_advanced(TORQUE_CXX_FLAGS_LIBS)
-    set(TORQUE_CXX_FLAGS_COMMON "" CACHE TYPE STRING)
+    set(TORQUE_CXX_FLAGS_COMMON "" CACHE STRING "")
     mark_as_advanced(TORQUE_CXX_FLAGS)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS}")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")


FIX (#2647): GDCM2 compatibility

FIX (#2647): GDCM2 compatibility

--- CMake/MITK_ITK_Config.cmake
+++ CMake/MITK_ITK_Config.cmake
@@ -2,5 +2,10 @@
 LIST(APPEND ALL_INCLUDE_DIRECTORIES ${ITK_INCLUDE_DIRS})
 LIST(APPEND ALL_LIBRARIES ${ITK_LIBRARIES})
 link_directories(${ITK_LIBRARY_DIRS})
+IF(ITK_USE_SYSTEM_GDCM)
+  FIND_PACKAGE(GDCM PATHS ${ITK_GDCM_DIR})
+  LIST(APPEND ALL_INCLUDE_DIRECTORIES ${GDCM_INCLUDE_DIRS})
+  LIST(APPEND ALL_LIBRARIES ${GDCM_LIBRARIES})
+ENDIF(ITK_USE_SYSTEM_GDCM)


COMP: allow tests to link with optional deps, no dragged by module lib

--- CMake/OTBModuleMacros.cmake
+++ CMake/OTBModuleMacros.cmake
@@ -277,6 +277,12 @@
   foreach(dep IN LISTS OTB_MODULE_${otb-module-test}_DEPENDS)
     list(APPEND ${otb-module-test}_LIBRARIES "${${dep}_LIBRARIES}")
   endforeach()
+  # make sure the test can link with optional libs
+  foreach(dep IN LISTS OTB_MODULE_${otb-module}_OPTIONAL_DEPENDS)
+    if (${dep}_ENABLED)
+      list(APPEND ${otb-module-test}_LIBRARIES "${${dep}_LIBRARIES}")
+    endif()
+  endforeach()
 endmacro()

 macro(otb_module_warnings_disable)


Support VTKExternalData_OBJECT_STORES as well

Allows for VTK-specific object sotres versus generic ExternalData object
stores.

Change-Id: I935bf761e5509a330303e9abe0f278bfcb750b42

--- CMake/vtkExternalData.cmake
+++ CMake/vtkExternalData.cmake
@@ -16,6 +16,9 @@
     # Generic adjacent directory created by user.
     get_filename_component(VTK_DATA_STORE_DEFAULT
       "${CMAKE_SOURCE_DIR}/../ExternalData" ABSOLUTE)
+  elseif(DEFINED "ENV{VTKExternalData_OBJECT_STORES}")
+    # The VTKExternalData environment variable.
+    file(TO_CMAKE_PATH "$ENV{VTKExternalData_OBJECT_STORES}" VTK_DATA_STORE_DEFAULT)
   elseif(DEFINED "ENV{ExternalData_OBJECT_STORES}")
     # Generic ExternalData environment variable.
     file(TO_CMAKE_PATH "$ENV{ExternalData_OBJECT_STORES}" VTK_DATA_STORE_DEFAULT)


Export the Java library targets.

Export the Java library targets.

This is necessary in order for external project to generate
Java wrappers.

Change-Id: Ia71e2b623b0b3a2ac49fab19927274214029b701

--- CMake/vtkJavaWrapping.cmake
+++ CMake/vtkJavaWrapping.cmake
@@ -41,6 +41,7 @@
     "${module_srcs};${Kit_JAVA_EXTRA_WRAP_SRCS}")

   add_library(${module_name}Java SHARED ${ModuleJava_SRCS} ${Kit_JAVA_EXTRA_SRCS})
+  vtk_target_export(${module_name}Java)
   if(CMAKE_HAS_TARGET_INCLUDES)
     set_property(TARGET ${module_name}Java APPEND
       PROPERTY INCLUDE_DIRECTORIES ${_java_include_dirs})


BUG 0013597 fix use system hdf5 for all build types

Per http://www.vtk.org/Bug/view.php?id=13597
When you turn on USE_SYSTEM_HDF5, especially with stock ubuntu,
CMake's FindHDF5 may return debug;<a>;optimized;<b> where either
<a> or <b> is empty (or <a>==<b> in which case a late remove
results in the same situation). When that happens
VTK will not compile under the empty config type.

In cmake 2.8.12.2, FindHDF5 is fixed, so when vtk's min cmake
reaches that this patch should be removed.

Change-Id: I29c55904f5f8e1d6797899eec033872dd377ea35

--- CMake/vtkModuleMacros.cmake
+++ CMake/vtkModuleMacros.cmake
@@ -715,6 +715,19 @@
     else()
       set(vtk${_lower}_LIBRARIES "${${_upper}_LIBRARIES}")
     endif()
+
+    #a workaround for bad FindHDF5 behavior in which deb or opt can
+    #end up empty. cmake >= 2.8.12.2 makes this uneccessary
+    string(REGEX MATCH "debug;.*optimized;.*"
+           _remove_deb_opt "${vtk${_lower}_LIBRARIES}")
+    if (_remove_deb_opt)
+      set(_tmp ${vtk${_lower}_LIBRARIES})
+      list(REMOVE_ITEM _tmp "debug")
+      list(REMOVE_ITEM _tmp "optimized")
+      list(REMOVE_DUPLICATES _tmp)
+      set(vtk${_lower}_LIBRARIES ${_tmp})
+    endif()
+
     set(vtk${_lower}_INCLUDE_DIRS "")
   else()
     if(_nolibs)


Package has been refreshed to first official hunterized release

--- cmake/projects/autobahn-cpp/hunter.cmake
+++ cmake/projects/autobahn-cpp/hunter.cmake
@@ -11,9 +11,9 @@
   VERSION
   "0.2.0"
   URL
-  "https://github.com/tatraian/autobahn-cpp/archive/0.2.0-hunter-p4.tar.gz"
+  "https://github.com/hunter-packages/autobahn-cpp/archive/0.2.0-hunter-p1.tar.gz"
   SHA1
-  44eb012233520b990cbadbeb749a56274d1adf2d
+  43e37635abc924017aeff1036479fde1aea36ceb
   )

 hunter_pick_scheme(DEFAULT url_sha1_cmake)


ccache: more robust check if config sloppiness is set to "pch_defines,time_macros"

--- CMake/cotire.cmake
+++ CMake/cotire.cmake
@@ -1856,10 +1856,31 @@
 	endif()
 	get_target_property(_launcher ${_target} ${_language}_COMPILER_LAUNCHER)
 	if (CMAKE_${_language}_COMPILER MATCHES "ccache" OR _launcher MATCHES "ccache")
-		if (NOT "$ENV{CCACHE_SLOPPINESS}" MATCHES "time_macros|pch_defines")
-			set (${_msgVar}
-				"ccache requires the environment variable CCACHE_SLOPPINESS to be set to \"pch_defines,time_macros\"."
-				PARENT_SCOPE)
+		if (DEFINED ENV{CCACHE_SLOPPINESS})
+			if (NOT "$ENV{CCACHE_SLOPPINESS}" MATCHES "pch_defines" OR NOT "$ENV{CCACHE_SLOPPINESS}" MATCHES "time_macros")
+				set (${_msgVar}
+					"ccache requires the environment variable CCACHE_SLOPPINESS to be set to \"pch_defines,time_macros\"."
+					PARENT_SCOPE)
+			endif()
+		else()
+			if (_launcher MATCHES "ccache")
+				get_filename_component(_ccacheExe "${_launcher}" REALPATH)
+			else()
+				get_filename_component(_ccacheExe "${CMAKE_${_language}_COMPILER}" REALPATH)
+			endif()
+			execute_process(
+				COMMAND "${_ccacheExe}" "--print-config"
+				WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+				RESULT_VARIABLE _result
+				OUTPUT_VARIABLE _ccacheConfig OUTPUT_STRIP_TRAILING_WHITESPACE
+				ERROR_QUIET)
+			if (_result OR NOT
+				_ccacheConfig MATCHES "sloppiness.*=.*time_macros" OR NOT
+				_ccacheConfig MATCHES "sloppiness.*=.*pch_defines")
+				set (${_msgVar}
+					"ccache requires configuration setting \"sloppiness\" to be set to \"pch_defines,time_macros\"."
+					PARENT_SCOPE)
+			endif()
 		endif()
 	endif()
 	if (APPLE)


ignoring more warnings in cdash

ignoring more warnings in cdash

--- CTestConfig.cmake
+++ CTestConfig.cmake
@@ -25,4 +25,5 @@
 endif()

 list (APPEND CTEST_CUSTOM_WARNING_EXCEPTION "warning #1478")  # deprecated function used
-list (APPEND CTEST_CUSTOM_WARNING_EXCEPTION "icpc: warning #10237: -lcilkrts linked in dynamically, static library not available")
+list (APPEND CTEST_CUSTOM_WARNING_EXCEPTION "warning #10237") # -lcilkrts linked in dynamically, static library not available")
+list (APPEND CTEST_CUSTOM_WARNING_EXCEPTION "-Wextern-initializer")


ignore uninteresting error lines from make

--- CTestCustom.cmake
+++ CTestCustom.cmake
@@ -1,3 +1,8 @@
 set(CTEST_CUSTOM_WARNING_EXCEPTION ${CTEST_CUSTOM_WARNING_EXCEPTION} "used uninitialized in this function")
 set(CTEST_CUSTOM_WARNING_EXCEPTION ${CTEST_CUSTOM_WARNING_EXCEPTION} "warning is a GCC extension")
 set(CTEST_CUSTOM_WARNING_EXCEPTION ${CTEST_CUSTOM_WARNING_EXCEPTION} "^-- ") # Ignore output from cmake
+set(CTEST_CUSTOM_WARNING_EXCEPTION ${CTEST_CUSTOM_WARNING_EXCEPTION} "^\\*\\*\\* WARNING non-zero return value in ctest from: make") # Ignore output from ctest
+
+set(CTEST_CUSTOM_ERROR_EXCEPTION ${CTEST_CUSTOM_ERROR_EXCEPTION} "^make\\[[1-9]\\]: ")
+set(CTEST_CUSTOM_ERROR_EXCEPTION ${CTEST_CUSTOM_ERROR_EXCEPTION} "^collect2: ld returned . exit status")
+set(CTEST_CUSTOM_ERROR_EXCEPTION ${CTEST_CUSTOM_ERROR_EXCEPTION} "^make: \\*\\*\\* \\[all\\] Error ")


ENH: Update SCIFIO to latest revision (2017.01.17)

Francois Budin (4):
      BUG: Remove CMAKE_INSTALL_PREFIX from install directory
      ENH: Improve usage of JAVA_HOME and SCIFIO_PATH environment variables
      ENH: Uses https instead of http to download jre and *.jars
      ENH: Remove extra slash (or backslash) in paths to facilitate concatenation

Matt McCormick (3):
      Merge pull request #31 from fbudin69500/remove_CMAKE_INSTALL_PREFIX
      Merge pull request #32 from fbudin69500/ENH_Uses_https_to_download_jre_and_jars
      Merge pull request #33 from fbudin69500/Improve_Path_handling

Change-Id: I407603553947c5c88e0c29b6db4f3990217b6936

--- Modules/Remote/SCIFIO.remote.cmake
+++ Modules/Remote/SCIFIO.remote.cmake
@@ -1,5 +1,5 @@
 itk_fetch_module(SCIFIO
   "SCIFIO (Bioformats) ImageIO plugin for ITK"
   GIT_REPOSITORY ${git_protocol}://github.com/scifio/scifio-imageio.git
-  GIT_TAG 233880a49125afdd980bb8d7ca511cb08aab8dd8
+  GIT_TAG 4391143cbf7696dad5c8a15d52dbc46daafe7aaa
   )


- fixed error in win32 install cmake

 - fixed error in win32 install cmake

git-svn-id: 41bd7e47c31e4d43f97241d7529f6785d233c6d8@12153 23f926e6-80f1-49ca-85a0-60d4a27bb3ac

--- rdo/packages/cmake/trunk/win32.install.cmake
+++ rdo/packages/cmake/trunk/win32.install.cmake
@@ -9,9 +9,9 @@
 SET(QT_LIBRARY_DIR       $ENV{QTDIR}/lib              )
 SET(QT_PLATFORM_DIR      $ENV{QTDIR}/plugins/platforms)

-FIND_FILE(DLL_ICUUC       icuuc50.dll        PATHS ${QT_LIBRARY_DIR})
-FIND_FILE(DLL_ICUIN       icuin50.dll        PATHS ${QT_LIBRARY_DIR})
-FIND_FILE(DLL_ICUDT       icudt50.dll        PATHS ${QT_LIBRARY_DIR})
+FIND_FILE(DLL_ICUUC       icuuc51.dll        PATHS ${QT_LIBRARY_DIR})
+FIND_FILE(DLL_ICUIN       icuin51.dll        PATHS ${QT_LIBRARY_DIR})
+FIND_FILE(DLL_ICUDT       icudt51.dll        PATHS ${QT_LIBRARY_DIR})
 FIND_FILE(DLL_D3DCOMPILER D3DCompiler_43.dll PATHS ${QT_LIBRARY_DIR})

 FIND_FILE(DLL_D_QT_CORE    Qt5Cored.dll    PATHS ${QT_LIBRARY_DIR})