diff --git a/CMake/WikiPolicies.cmake b/CMake/WikiPolicies.cmake index 4a59acf1b5a688e47cdcf1edd00439610914205f..9e7ea2896a83ddda0da581034092a10db9157fb2 100644 --- a/CMake/WikiPolicies.cmake +++ b/CMake/WikiPolicies.cmake @@ -8,6 +8,7 @@ foreach(p CMP0025 # CMake 3.0 CMP0043 # CMake 3.0 CMP0053 # CMake 3.1 + CMP0071 ) if(POLICY ${p}) cmake_policy(SET ${p} NEW) diff --git a/src/Admin/ScrapeRepo b/src/Admin/ScrapeRepo index d23f6cc5258eecf6b76cdf4da758e0bc1990628f..da62a6dc0ed2751647978654b8fcafe03900437f 100755 --- a/src/Admin/ScrapeRepo +++ b/src/Admin/ScrapeRepo @@ -315,8 +315,9 @@ def FillCMakeLists(S, Name, ExtraNames, Components): return reg -def FillQtCMakeLists(S, Name): - reg = re.sub(r'XXX', Name, S) +def FillQtCMakeLists(S, Name, Components): + r1 = re.sub(r'XXX', Name, S) + reg = re.sub(r'ZZZ', Components, r1) return reg ##################################################################### @@ -669,7 +670,17 @@ for lang, langExt in Languages.items(): CMakeFile = open(RepoDir + "/Admin/VTKQtCMakeLists", 'r') CMakeContents = CMakeFile.read() CMakeFile.close() - cmake = FillQtCMakeLists(CMakeContents, ExampleName) + # Create component lines + Components = "" + for component in components: + if "vtk" in component: + Components += "\n " + component + else: + Components += "\n " + "vtk" + component + # If there are no components found, assume we need then all + # This occurs when the source file includes another Cxx file + #print("Components: " + Components) + cmake = FillQtCMakeLists(CMakeContents, ExampleName, Components) else: CMakeFile = open(RepoDir + "/Admin/VTKCMakeLists", 'r') CMakeContents = CMakeFile.read() diff --git a/src/Admin/VTKQtCMakeLists b/src/Admin/VTKQtCMakeLists index 9b314336ea2adf5016d6c5a5f186162ef744e9eb..83c48874616b19f6b28b3efdce42b8dd59af53eb 100644 --- a/src/Admin/VTKQtCMakeLists +++ b/src/Admin/VTKQtCMakeLists @@ -1,6 +1,6 @@ ###CMakeLists.txt ```cmake -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.3 FATAL_ERROR) if(POLICY CMP0020) cmake_policy(SET CMP0020 NEW) @@ -8,8 +8,27 @@ endif() PROJECT(XXX) -find_package(VTK REQUIRED) -include(${VTK_USE_FILE}) +find_package(VTK COMPONENTS ZZZ)) +if (NOT VTK_FOUND) + message("Skipping XXX: ${VTK_NOT_FOUND_MESSAGE}") + return () +endif() +message (STATUS "VTK_VERSION: ${VTK_VERSION}") +if (VTK_VERSION VERSION_LESS "8.90.0") + # old system + include(${VTK_USE_FILE}) + add_executable(XXX MACOSX_BUNDLE XXX.cxx ) + target_link_libraries(XXX PRIVATE ${VTK_LIBRARIES}) +else () + # include all components + add_executable(XXX MACOSX_BUNDLE XXX.cxx ) + target_link_libraries(XXX PRIVATE ${VTK_LIBRARIES}) + # vtk_module_autoinit is needed + vtk_module_autoinit( + TARGETS XXX + MODULES ${VTK_LIBRARIES} + ) +endif () if(${VTK_VERSION} VERSION_GREATER "6" AND VTK_QT_VERSION VERSION_GREATER "4") # Instruct CMake to run moc automatically when needed. diff --git a/src/Cxx/Qt/CMakeLists.txt b/src/Cxx/Qt/CMakeLists.txt index 868e7e960086485ef6a2044429c3b0eb117b337c..807822a7f0ef1a42397a1a9192418b6e50148630 100644 --- a/src/Cxx/Qt/CMakeLists.txt +++ b/src/Cxx/Qt/CMakeLists.txt @@ -6,6 +6,7 @@ foreach(p CMP0025 # CMake 3.0 CMP0043 # CMake 3.0 CMP0053 # CMake 3.1 + CMP0071 ) if(POLICY ${p}) cmake_policy(SET ${p} NEW)