From f89ad818cffcc74097102742017e343f7335ab36 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 06:32:06 +0200 Subject: [PATCH 01/24] use system provided newmat library --- CMakeLists.txt | 7 +++++-- FindNewmat.cmake | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 FindNewmat.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index de60f326..9e08263f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,11 +141,14 @@ ENDIF(Boost_FOUND) # Comment out the modules you don't want to build -ADD_SUBDIRECTORY(newmat) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + ${CMAKE_SOURCE_DIR}) +find_package(Newmat REQUIRED) + ADD_SUBDIRECTORY(sisl) ADD_SUBDIRECTORY(ttl) SET(GoTools_COMMON_INCLUDE_DIRS - ${newmat_SOURCE_DIR}/include + ${Newmat_INCLUDE_DIRS} ${sisl_SOURCE_DIR}/include ${ttl_SOURCE_DIR}/include ${GoTools_COMMON_INCLUDE_DIRS} diff --git a/FindNewmat.cmake b/FindNewmat.cmake new file mode 100644 index 00000000..287ebb56 --- /dev/null +++ b/FindNewmat.cmake @@ -0,0 +1,42 @@ +# - Tries to find the Newmat library +# +# Written by: jan.b.thomassen@sintef.no +# + + +# 'GoTools_BUILD_ALL' will be defined in the top-level CMakeLists.txt +# file if we are building all of GoTools in one project. +IF(GoTools_BUILD_ALL) + # Header files + SET(Newmat_INCLUDE_DIRS ${newmat_SOURCE_DIR}/include + CACHE PATH "Path to Newmat header files") + # Library + SET(Newmat_LIBRARIES newmat + CACHE FILE "Newamt library") +ENDIF(GoTools_BUILD_ALL) + + +# Find header files +FIND_PATH(Newmat_INCLUDE_DIRS "newmat.h" + "/usr/include/newmat" + "/usr/local/include/newmat" + "$ENV{HOME}/include/newmat" + "$ENV{HOME}/install/include/newmat" + "$ENV{PROGRAMFILES}/newmat/include/newmat" + "$ENV{PROGRAMFILES}/SINTEF/newmat/include/newmat" +) + +# Find library +FIND_LIBRARY(Newmat_LIBRARIES + NAMES newmat + PATHS "$ENV{HOME}/lib" + "$ENV{HOME}/install/lib" + "$ENV{PROGRAMFILES}/newmat/lib" + "$ENV{PROGRAMFILES}/SINTEF/newmat/lib" +) + +# Check that we have found everything +SET(Newmat_FOUND FALSE) +IF(Newmat_INCLUDE_DIRS AND Newmat_LIBRARIES) + SET(Newmat_FOUND TRUE) +ENDIF(Newmat_INCLUDE_DIRS AND Newmat_LIBRARIES) From 3e7835c88b84326f4a4835ec1a057a06fcfb9f2a Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 06:32:06 +0200 Subject: [PATCH 02/24] use system provided ttl library --- CMakeLists.txt | 4 ++-- FindTTL.cmake | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 FindTTL.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e08263f..a5109fde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,13 +144,13 @@ ENDIF(Boost_FOUND) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}) find_package(Newmat REQUIRED) +find_package(TTL REQUIRED) ADD_SUBDIRECTORY(sisl) -ADD_SUBDIRECTORY(ttl) SET(GoTools_COMMON_INCLUDE_DIRS ${Newmat_INCLUDE_DIRS} ${sisl_SOURCE_DIR}/include - ${ttl_SOURCE_DIR}/include + ${TTL_INCLUDE_DIRS} ${GoTools_COMMON_INCLUDE_DIRS} CACHE INTERNAL "GoTools common include dirs") diff --git a/FindTTL.cmake b/FindTTL.cmake new file mode 100644 index 00000000..6fb45c01 --- /dev/null +++ b/FindTTL.cmake @@ -0,0 +1,39 @@ +# - Tries to find the TTL library +# +# Written by: jan.b.thomassen@sintef.no +# + +# 'GoTools_BUILD_ALL' will be defined in the top-level CMakeLists.txt +# file if we are building all of GoTools in one project. +IF(GoTools_BUILD_ALL) + # Header files + SET(TTL_INCLUDE_DIRS ${ttl_SOURCE_DIR}/include + CACHE PATH "Path to TTL header files") + # Library + SET(TTL_LIBRARIES ttl + CACHE FILE "TTL library") +ENDIF(GoTools_BUILD_ALL) + +# Find header files +FIND_PATH(TTL_INCLUDE_DIRS + "ttl/ttl.h" + "$ENV{HOME}/include" + "$ENV{HOME}/install/include" + "C:/Program Files (x86)/ttl/include" + "$ENV{PROGRAMFILES}/SINTEF/ttl/include/newmat" +) + +# Find library +FIND_LIBRARY(TTL_LIBRARIES + NAMES ttl + PATHS "$ENV{HOME}/lib" + "$ENV{HOME}/install/lib" + "C:/Program Files (x86)/ttl/lib" + "$ENV{PROGRAMFILES}/SINTEF/ttl/lib" +) + +# Check that we have found everything +SET(TTL_FOUND FALSE) +IF(TTL_INCLUDE_DIRS AND TTL_LIBRARIES) + SET(TTL_FOUND TRUE) +ENDIF(TTL_INCLUDE_DIRS AND TTL_LIBRARIES) From b642a2de1b8099f27026920ad1440cd33647d26a Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 06:32:06 +0200 Subject: [PATCH 03/24] use system provided sisl library --- CMakeLists.txt | 4 ++-- FindSISL.cmake | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 FindSISL.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index a5109fde..fc71540d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,11 +145,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}) find_package(Newmat REQUIRED) find_package(TTL REQUIRED) +find_package(SISL REQUIRED) -ADD_SUBDIRECTORY(sisl) SET(GoTools_COMMON_INCLUDE_DIRS ${Newmat_INCLUDE_DIRS} - ${sisl_SOURCE_DIR}/include + ${SISL_INCLUDE_DIRS} ${TTL_INCLUDE_DIRS} ${GoTools_COMMON_INCLUDE_DIRS} CACHE INTERNAL "GoTools common include dirs") diff --git a/FindSISL.cmake b/FindSISL.cmake new file mode 100644 index 00000000..91747e7d --- /dev/null +++ b/FindSISL.cmake @@ -0,0 +1,38 @@ +# - Tries to find the SISL library +# +# Written by: jan.b.thomassen@sintef.no +# + +# 'GoTools_BUILD_ALL' will be defined in the top-level CMakeLists.txt +# file if we are building all of GoTools in one project. +IF(GoTools_BUILD_ALL) + # Header files + SET(SISL_INCLUDE_DIRS ${sisl_SOURCE_DIR}/include + CACHE PATH "Path to SISL header files") + # Library + SET(SISL_LIBRARIES sisl + CACHE FILE "SISL library") +ENDIF(GoTools_BUILD_ALL) + +# Find header files +FIND_PATH(SISL_INCLUDE_DIRS "sisl.h" + "$ENV{HOME}/include" + "$ENV{HOME}/install/include" + "C:/Program Files (x86)/sisl/include" + "$ENV{PROGRAMFILES}/SINTEF/sisl/include" +) + +# Find library +FIND_LIBRARY(SISL_LIBRARIES + NAMES sisl + PATHS "$ENV{HOME}/lib" + "$ENV{HOME}/install/lib" + "C:/Program Files (x86)/sisl/lib" + "$ENV{PROGRAMFILES}/SINTEF/sisl/lib" +) + +# Check that we have found everything +SET(SISL_FOUND FALSE) +IF(SISL_INCLUDE_DIRS AND SISL_LIBRARIES) + SET(SISL_FOUND TRUE) +ENDIF(SISL_INCLUDE_DIRS AND SISL_LIBRARIES) From 98536cf607d21e46b047b7ee653fbc78f824d4e0 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:29:02 +0200 Subject: [PATCH 04/24] gotools-core: use GNUInstallDirs and remove duplicated installation statements --- gotools-core/CMakeLists.txt | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/gotools-core/CMakeLists.txt b/gotools-core/CMakeLists.txt index de421047..95c82f11 100644 --- a/gotools-core/CMakeLists.txt +++ b/gotools-core/CMakeLists.txt @@ -101,25 +101,12 @@ endif() # 'install' target IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoToolsCore DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/ - DESTINATION ${GoTools_INSTALL_PREFIX}/include - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoToolsCore DESTINATION lib COMPONENT core) - # include - INSTALL(DIRECTORY include/ - DESTINATION include - COMPONENT core-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) # === Install Targets and Export Package === @@ -129,15 +116,15 @@ include(CMakePackageConfigHelpers) # Install the GoToolsCore target with export set install(TARGETS GoToolsCore EXPORT GoToolsCoreTargets - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) # Install headers install(DIRECTORY include/ - DESTINATION include + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.h" ) From 5cd7c6fec01644666ce437fd84f31c89f389ee65 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 05/24] gotrivariate: install config files --- trivariate/CMakeLists.txt | 66 ++++++++++++++------ trivariate/cmake/GoTrivariateConfig.cmake.in | 9 +++ 2 files changed, 57 insertions(+), 18 deletions(-) create mode 100644 trivariate/cmake/GoTrivariateConfig.cmake.in diff --git a/trivariate/CMakeLists.txt b/trivariate/CMakeLists.txt index aaab6bda..21c621fe 100644 --- a/trivariate/CMakeLists.txt +++ b/trivariate/CMakeLists.txt @@ -65,28 +65,58 @@ if (GoTools_COPY_DATA) endif() # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoTrivariate DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/trivariate - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoTrivariate DESTINATION lib COMPONENT trivariate) - # include - INSTALL(DIRECTORY include/GoTools/trivariate - DESTINATION include/GoTools - COMPONENT trivariate-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoTrivariate target with export set +install(TARGETS GoTrivariate + EXPORT GoTrivariateTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoTrivariateTargets + FILE GoTrivariateTargets.cmake + DESTINATION lib/cmake/GoTrivariate +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoTrivariateConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoTrivariate +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateConfigVersion.cmake" + DESTINATION lib/cmake/GoTrivariate +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoTrivariate.so) diff --git a/trivariate/cmake/GoTrivariateConfig.cmake.in b/trivariate/cmake/GoTrivariateConfig.cmake.in new file mode 100644 index 00000000..43ee353f --- /dev/null +++ b/trivariate/cmake/GoTrivariateConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoTrivariateTargets.cmake") + +# Legacy compatibility +set(GoTrivariate_LIBRARIES GoTrivariate) + +# Optionally set variables +set(GoTrivariate_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 84ee9a0f8166fbf36b55b28890556a062d331cab Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 06/24] parametrization: install config files --- parametrization/CMakeLists.txt | 67 ++++++++++++++----- .../cmake/parametrizationConfig.cmake.in | 9 +++ 2 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 parametrization/cmake/parametrizationConfig.cmake.in diff --git a/parametrization/CMakeLists.txt b/parametrization/CMakeLists.txt index 79696845..5c6b9af7 100644 --- a/parametrization/CMakeLists.txt +++ b/parametrization/CMakeLists.txt @@ -57,28 +57,61 @@ if (GoTools_COPY_DATA) ) endif() +# 'install' target # 'install' target IF(WIN32) # Windows - # lib - INSTALL(TARGETS parametrization DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/parametrization - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS parametrization DESTINATION lib COMPONENT parametrization) - # include - INSTALL(DIRECTORY include/GoTools/parametrization - DESTINATION include/GoTools - COMPONENT parametrization-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoToolsCore target with export set +install(TARGETS parametrization + EXPORT parametrizationTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT parametrizationTargets + FILE parametrizationTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/parametrization +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/parametrizationConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/parametrizationConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/parametrizationConfig.cmake" + INSTALL_DESTINATION lib/cmake/parametrization +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/parametrizationConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/parametrizationConfigVersion.cmake" + DESTINATION lib/cmake/parametrization +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libparametrization.so) diff --git a/parametrization/cmake/parametrizationConfig.cmake.in b/parametrization/cmake/parametrizationConfig.cmake.in new file mode 100644 index 00000000..d00f0c30 --- /dev/null +++ b/parametrization/cmake/parametrizationConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoToolsCoreTargets.cmake") + +# Legacy compatibility +set(GoTools_LIBRARIES GoToolsCore) + +# Optionally set variables +set(GoToolsCore_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 90709db3fdfe452cdd6b142d4f95b0771a3c0708 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 07/24] GoIgeslib: install config files --- igeslib/CMakeLists.txt | 67 +++++++++++++++++++------- igeslib/cmake/GoIgeslibConfig.cmake.in | 9 ++++ 2 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 igeslib/cmake/GoIgeslibConfig.cmake.in diff --git a/igeslib/CMakeLists.txt b/igeslib/CMakeLists.txt index a23e1538..e545ed41 100644 --- a/igeslib/CMakeLists.txt +++ b/igeslib/CMakeLists.txt @@ -64,28 +64,59 @@ if (GoTools_COPY_DATA) endif() # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoIgeslib DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/igeslib - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoIgeslib DESTINATION lib COMPONENT igeslib) - # include - INSTALL(DIRECTORY include/GoTools/igeslib - COMPONENT igeslib-dev - DESTINATION include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoToolsCore target with export set +install(TARGETS GoIgeslib + EXPORT GoIgeslibTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoIgeslibTargets + FILE GoIgeslibTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoIgeslib +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoIgeslibConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoIgeslibConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoIgeslibConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoIgeslib +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoIgeslibConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoIgeslibConfigVersion.cmake" + DESTINATION lib/cmake/GoIgeslib +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoIgeslib.so) diff --git a/igeslib/cmake/GoIgeslibConfig.cmake.in b/igeslib/cmake/GoIgeslibConfig.cmake.in new file mode 100644 index 00000000..d0915a61 --- /dev/null +++ b/igeslib/cmake/GoIgeslibConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoIgesLibTargets.cmake") + +# Legacy compatibility +set(GoIgesLib_LIBRARIES GoIgesLib) + +# Optionally set variables +set(GoIgesLib_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 728bcd87e1f1fb0ba9d3ec764fc1cc707d3ff239 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 08/24] GoImplicitization: install config files --- implicitization/CMakeLists.txt | 68 +++++++++++++------ .../cmake/GoImplicitizationConfig.cmake.in | 9 +++ 2 files changed, 58 insertions(+), 19 deletions(-) create mode 100644 implicitization/cmake/GoImplicitizationConfig.cmake.in diff --git a/implicitization/CMakeLists.txt b/implicitization/CMakeLists.txt index 2336ba21..a25cd405 100644 --- a/implicitization/CMakeLists.txt +++ b/implicitization/CMakeLists.txt @@ -72,29 +72,59 @@ endif() # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoImplicitization DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/implicitization - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoImplicitization DESTINATION lib COMPONENT implicitization) - # include - INSTALL(DIRECTORY include/GoTools/implicitization - DESTINATION include/GoTools - COMPONENT implicitization-dev - FILES_MATCHING PATTERN "*.h" - PATTERN "*.hpp" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoToolsCore target with export set +install(TARGETS GoImplicitization + EXPORT GoImplicitizationTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoImplicitizationTargets + FILE GoImplicitizationTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoImplicitization +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoImplicitizationConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoImplicitizationConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoImplicitizationConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoImplicitization +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoImplicitizationConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoImplicitizationConfigVersion.cmake" + DESTINATION lib/cmake/GoImplicitization +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoImplicitization.so) diff --git a/implicitization/cmake/GoImplicitizationConfig.cmake.in b/implicitization/cmake/GoImplicitizationConfig.cmake.in new file mode 100644 index 00000000..b237f69b --- /dev/null +++ b/implicitization/cmake/GoImplicitizationConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoImplicitizationTargets.cmake") + +# Legacy compatibility +set(GoImplicitization_LIBRARIES GoToolsCore) + +# Optionally set variables +set(GoImplicitization_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 016c2cf45b9277effb529de81fc666ec50c51669 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 09/24] GoIntersections: install config files --- intersections/CMakeLists.txt | 68 +++++++++++++------ .../cmake/GoIntersectionsConfig.cmake.in | 9 +++ 2 files changed, 58 insertions(+), 19 deletions(-) create mode 100644 intersections/cmake/GoIntersectionsConfig.cmake.in diff --git a/intersections/CMakeLists.txt b/intersections/CMakeLists.txt index 9d8a91b6..840c7136 100644 --- a/intersections/CMakeLists.txt +++ b/intersections/CMakeLists.txt @@ -52,29 +52,59 @@ IF(GoTools_COMPILE_APPS) ENDIF(GoTools_COMPILE_APPS) # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoIntersections DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/intersections - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoIntersections DESTINATION lib COMPONENT intersections) - # include - INSTALL(DIRECTORY include/GoTools/intersections - DESTINATION include/GoTools - COMPONENT intersections-dev - FILES_MATCHING PATTERN "*.h" - PATTERN "*.hpp" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoToolsCore target with export set +install(TARGETS GoIntersections + EXPORT GoIntersectionsTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoIntersectionsTargets + FILE GoIntersectionsTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoIntersections +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoIntersectionsConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoIntersectionsConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoIntersectionsConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoIntersections +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoIntersectionsConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoIntersectionsConfigVersion.cmake" + DESTINATION lib/cmake/GoIntersections +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoIntersections.so) diff --git a/intersections/cmake/GoIntersectionsConfig.cmake.in b/intersections/cmake/GoIntersectionsConfig.cmake.in new file mode 100644 index 00000000..7ff71060 --- /dev/null +++ b/intersections/cmake/GoIntersectionsConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoIntersectionsTargets.cmake") + +# Legacy compatibility +set(GoIntersections_LIBRARIES GoIntersections) + +# Optionally set variables +set(GoIntersections_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 3e14e1384d0699af622fceeb8076db60378ed1e0 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:29:02 +0200 Subject: [PATCH 10/24] GoLRSplines2D: use GNUInstallDirs and remove duplicated installation statements --- lrsplines2D/CMakeLists.txt | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/lrsplines2D/CMakeLists.txt b/lrsplines2D/CMakeLists.txt index 7c2b7f48..e22ec08c 100644 --- a/lrsplines2D/CMakeLists.txt +++ b/lrsplines2D/CMakeLists.txt @@ -132,28 +132,14 @@ if (GoTools_COPY_DATA) endif() # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoLRspline2D DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/lrsplines2D - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoLRspline2D DESTINATION lib COMPONENT lrsplines2D) - # include - INSTALL(DIRECTORY include/GoTools/lrsplines2D - DESTINATION include/GoTools - COMPONENT lrsplines2D-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) # === Install and Export CMake Config Package === @@ -163,10 +149,16 @@ include(CMakePackageConfigHelpers) # Install the GoLRspline2D target install(TARGETS GoLRspline2D EXPORT GoLRspline2DTargets - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" ) # Export the target without namespace From 00026ca62d9a3a60a7263c841d9cf6a9e6a197e1 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 11/24] GoLrsplines3D: install config files --- lrsplines3D/CMakeLists.txt | 68 ++++++++++++++----- .../cmake/GoLRsplines3DConfig.cmake.in | 9 +++ 2 files changed, 59 insertions(+), 18 deletions(-) create mode 100644 lrsplines3D/cmake/GoLRsplines3DConfig.cmake.in diff --git a/lrsplines3D/CMakeLists.txt b/lrsplines3D/CMakeLists.txt index bbe495b4..da759599 100644 --- a/lrsplines3D/CMakeLists.txt +++ b/lrsplines3D/CMakeLists.txt @@ -138,28 +138,60 @@ ENDIF() file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp) # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoLRspline3D DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/lrsplines3D - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoLRspline3D DESTINATION lib COMPONENT lrsplines3D) - # include - INSTALL(DIRECTORY include/GoTools/lrsplines3D - DESTINATION include/GoTools - COMPONENT lrsplines3D-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install and Export CMake Config Package === + +include(CMakePackageConfigHelpers) + +# Install the GoLRspline2D target +install(TARGETS GoLRspline3D + EXPORT GoLRspline3DTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the target without namespace +install(EXPORT GoLRspline3DTargets + FILE GoLRsplines3DTargets.cmake + DESTINATION lib/cmake/GoLRsplines3D +) + +# Generate the version file for find_package() +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines3DConfigVersion.cmake" + VERSION ${GoTools_ABI_VERSION} + COMPATIBILITY SameMajorVersion +) + +# Generate the config file from template +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoLRsplines3DConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines3DConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoLRsplines3D +) + +# Install the generated config files +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines3DConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines3DConfigVersion.cmake" + DESTINATION lib/cmake/GoLRsplines3D +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoLRspline3D.so) diff --git a/lrsplines3D/cmake/GoLRsplines3DConfig.cmake.in b/lrsplines3D/cmake/GoLRsplines3DConfig.cmake.in new file mode 100644 index 00000000..6db6cd5b --- /dev/null +++ b/lrsplines3D/cmake/GoLRsplines3DConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoLRsplines3DTargets.cmake") + +# Legacy compatibility +set(GoLRsplines3D_LIBRARIES GoLRspline3D) + +# Optional include path var +set(GoLRsplines3D_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 2c121d92b1f1315449fa42a2cfe917ede154504b Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 12/24] GoTopology: install config files --- topology/CMakeLists.txt | 64 ++++++++++++++++++------ topology/cmake/GoTopologyConfig.cmake.in | 9 ++++ 2 files changed, 58 insertions(+), 15 deletions(-) create mode 100644 topology/cmake/GoTopologyConfig.cmake.in diff --git a/topology/CMakeLists.txt b/topology/CMakeLists.txt index ee14f67e..c0621c53 100644 --- a/topology/CMakeLists.txt +++ b/topology/CMakeLists.txt @@ -64,25 +64,59 @@ ENDIF(GoTools_COMPILE_TESTS) # 'install' target - IF(WIN32) # Windows - INSTALL(TARGETS GoTopology DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - INSTALL(DIRECTORY include/GoTools/topology - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - INSTALL(TARGETS GoTopology DESTINATION lib COMPONENT topology) - INSTALL(DIRECTORY include/GoTools/topology - DESTINATION include/GoTools - COMPONENT topology-dev - FILES_MATCHING PATTERN "*.h" - PATTERN "*.hpp" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoTopology target with export set +install(TARGETS GoTopology + EXPORT GoTopologyTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoTopologyTargets + FILE GoTopologyTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoTopology +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoTopologyConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoTopologyConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoTopologyConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoTopology +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoTopologyConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoTopologyConfigVersion.cmake" + DESTINATION lib/cmake/GoTopology +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoTopology.so) diff --git a/topology/cmake/GoTopologyConfig.cmake.in b/topology/cmake/GoTopologyConfig.cmake.in new file mode 100644 index 00000000..6191b4e3 --- /dev/null +++ b/topology/cmake/GoTopologyConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoTopologyTargets.cmake") + +# Legacy compatibility +set(GoTopology_LIBRARIES GoTopology) + +# Optionally set variables +set(GoTopology_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 0e0ed320a7c6ab8a5eb7306f5d76c23b5fd3f659 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 13/24] GoCompositeModel: install config files --- compositemodel/CMakeLists.txt | 67 ++++++++++++++----- .../cmake/GoCompositeModelConfig.cmake.in | 9 +++ 2 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 compositemodel/cmake/GoCompositeModelConfig.cmake.in diff --git a/compositemodel/CMakeLists.txt b/compositemodel/CMakeLists.txt index e241c7d1..b15b1ebb 100644 --- a/compositemodel/CMakeLists.txt +++ b/compositemodel/CMakeLists.txt @@ -124,28 +124,59 @@ endif() execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/tmp) # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoCompositeModel DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - #include - INSTALL(DIRECTORY include/GoTools/compositemodel - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - #lib - INSTALL(TARGETS GoCompositeModel DESTINATION lib COMPONENT compositemodel) - # include - INSTALL(DIRECTORY include/GoTools/compositemodel - DESTINATION include/GoTools - COMPONENT compositemodel-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoCompositeModel target with export set +install(TARGETS GoCompositeModel + EXPORT GoCompositeModelTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoCompositeModelTargets + FILE GoCompositeModelTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoCompositeModel +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoCompositeModelConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoCompositeModelConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoCompositeModelConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoCompositeModel +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoCompositeModelConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoCompositeModelConfigVersion.cmake" + DESTINATION lib/cmake/GoCompositeModel +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoCompositeModel.so) diff --git a/compositemodel/cmake/GoCompositeModelConfig.cmake.in b/compositemodel/cmake/GoCompositeModelConfig.cmake.in new file mode 100644 index 00000000..ed6445cd --- /dev/null +++ b/compositemodel/cmake/GoCompositeModelConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoCompositeModelTargets.cmake") + +# Legacy compatibility +set(GoCompositeModel_LIBRARIES GoCompositeModel) + +# Optionally set variables +set(GoCompositeModel_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From 9e25e08c8faae6f3bab4adf4f6de414cbd0b4bed Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 14/24] GoTrivariateModel: install config files --- trivariatemodel/CMakeLists.txt | 67 ++++++++++++++----- .../cmake/GoTrivariateModelConfig.cmake.in | 9 +++ 2 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 trivariatemodel/cmake/GoTrivariateModelConfig.cmake.in diff --git a/trivariatemodel/CMakeLists.txt b/trivariatemodel/CMakeLists.txt index 0c63cf75..f8cc1362 100644 --- a/trivariatemodel/CMakeLists.txt +++ b/trivariatemodel/CMakeLists.txt @@ -98,28 +98,59 @@ if (GoTools_COPY_DATA) endif() # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoTrivariateModel DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - #include - INSTALL(DIRECTORY include/GoTools/trivariatemodel - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - #lib - INSTALL(TARGETS GoTrivariateModel DESTINATION lib COMPONENT trivariatemodel) - # include - INSTALL(DIRECTORY include/GoTools/trivariatemodel - DESTINATION include/GoTools - COMPONENT trivariatemodel-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoTrivariateModel target with export set +install(TARGETS GoTrivariateModel + EXPORT GoTrivariateModelTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoTrivariateModelTargets + FILE GoTrivariateModelTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoTrivariateModel +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateModelConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoTrivariateModelConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateModelConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoTrivariateModel +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateModelConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateModelConfigVersion.cmake" + DESTINATION lib/cmake/GoTrivariateModel +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoTrivariateModel.so) diff --git a/trivariatemodel/cmake/GoTrivariateModelConfig.cmake.in b/trivariatemodel/cmake/GoTrivariateModelConfig.cmake.in new file mode 100644 index 00000000..03fd563e --- /dev/null +++ b/trivariatemodel/cmake/GoTrivariateModelConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoTrivariateModelTargets.cmake") + +# Legacy compatibility +set(GoTrivariateModel_LIBRARIES GoTrivariateModel) + +# Optionally set variables +set(GoTrivariateModel_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From ba956af4a6f48d981b36221d5369b6f93e580b60 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 15/24] GoQualityModule: install config files --- qualitymodule/CMakeLists.txt | 67 ++++++++++++++----- .../cmake/GoQualityModuleConfig.cmake.in | 9 +++ 2 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 qualitymodule/cmake/GoQualityModuleConfig.cmake.in diff --git a/qualitymodule/CMakeLists.txt b/qualitymodule/CMakeLists.txt index c2c949e8..9f8906b8 100644 --- a/qualitymodule/CMakeLists.txt +++ b/qualitymodule/CMakeLists.txt @@ -79,28 +79,59 @@ ENDIF(GoTools_COMPILE_TESTS) # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoQualityModule DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/qualitymodule - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoQualityModule DESTINATION lib COMPONENT qualitymodule) - # include - INSTALL(DIRECTORY include/GoTools/qualitymodule - DESTINATION include/GoTools - COMPONENT qualitymodule-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoQualityModule target with export set +install(TARGETS GoQualityModule + EXPORT GoQualityModuleTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoQualityModuleTargets + FILE GoQualityModuleTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoQualityModule +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoQualityModuleConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoQualityModuleConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoQualityModuleConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoQualityModule +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoQualityModuleConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoQualityModuleConfigVersion.cmake" + DESTINATION lib/cmake/GoQualityModule +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoQualityModule.so) diff --git a/qualitymodule/cmake/GoQualityModuleConfig.cmake.in b/qualitymodule/cmake/GoQualityModuleConfig.cmake.in new file mode 100644 index 00000000..4dea4b03 --- /dev/null +++ b/qualitymodule/cmake/GoQualityModuleConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoQualityModuleTargets.cmake") + +# Legacy compatibility +set(GoQualityModule_LIBRARIES GoQualityModule) + +# Optionally set variables +set(GoQualityModule_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From cd81a7083f3fa225ab308c91e089ec112ec82d66 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 1 Apr 2025 07:32:39 +0200 Subject: [PATCH 16/24] GoIsogeometricModel: install config files --- isogeometric_model/CMakeLists.txt | 67 ++++++++++++++----- .../cmake/GoIsogeometricModelConfig.cmake.in | 9 +++ 2 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 isogeometric_model/cmake/GoIsogeometricModelConfig.cmake.in diff --git a/isogeometric_model/CMakeLists.txt b/isogeometric_model/CMakeLists.txt index 8308dfd7..fd076272 100644 --- a/isogeometric_model/CMakeLists.txt +++ b/isogeometric_model/CMakeLists.txt @@ -87,28 +87,59 @@ endif() # 'install' target - IF(WIN32) # Windows - # lib - INSTALL(TARGETS GoIsogeometricModel DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - INSTALL(DIRECTORY include/GoTools/isogeometric_model - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + set(CMAKE_INSTALL_LIBDIR lib) + set(CMAKE_INSTALL_INCLUDEDIR include) + set(CMAKE_INSTALL_BINDIR bin) ELSE(WIN32) # Linux - # lib - INSTALL(TARGETS GoIsogeometricModel DESTINATION lib COMPONENT isogeometricmodel) - # include - INSTALL(DIRECTORY include/GoTools/isogeometric_model - DESTINATION include/GoTools - COMPONENT isogeometricmodel-dev - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) + include(GNUInstallDirs) ENDIF(WIN32) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Install the GoToolsCore target with export set +install(TARGETS GoIsogeometricModel + EXPORT GoIsogeometricModelTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install headers +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" +) + +# Export the targets to a file +install(EXPORT GoIsogeometricModelTargets + FILE GoIsogeometricModelTargets.cmake + #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) + DESTINATION lib/cmake/GoIsogeometricModel +) + +# Generate and install the Config and Version files +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/GoIsogeometricModelConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoIsogeometricModelConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/GoIsogeometricModelConfig.cmake" + INSTALL_DESTINATION lib/cmake/GoIsogeometricModel +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/GoIsogeometricModelConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/GoIsogeometricModelConfigVersion.cmake" + DESTINATION lib/cmake/GoIsogeometricModel +) + SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoIsogeometricModel.so) diff --git a/isogeometric_model/cmake/GoIsogeometricModelConfig.cmake.in b/isogeometric_model/cmake/GoIsogeometricModelConfig.cmake.in new file mode 100644 index 00000000..d2b254b6 --- /dev/null +++ b/isogeometric_model/cmake/GoIsogeometricModelConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/GoIsogeometricModelTargets.cmake") + +# Legacy compatibility +set(GoIsogeometricModel_LIBRARIES GoIsogeometricModel) + +# Optionally set variables +set(GoIsogeometricModel_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") From d33845982e34e99c5bf23b968829b7d06ec0d9e4 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Thu, 10 Apr 2025 14:03:59 +0200 Subject: [PATCH 17/24] Removed find cmake for sisl, ttl and cmake, keeping the modules inside the gotools setup. --- FindNewmat.cmake | 42 ------------------------------------------ FindSISL.cmake | 38 -------------------------------------- FindTTL.cmake | 39 --------------------------------------- 3 files changed, 119 deletions(-) delete mode 100644 FindNewmat.cmake delete mode 100644 FindSISL.cmake delete mode 100644 FindTTL.cmake diff --git a/FindNewmat.cmake b/FindNewmat.cmake deleted file mode 100644 index 287ebb56..00000000 --- a/FindNewmat.cmake +++ /dev/null @@ -1,42 +0,0 @@ -# - Tries to find the Newmat library -# -# Written by: jan.b.thomassen@sintef.no -# - - -# 'GoTools_BUILD_ALL' will be defined in the top-level CMakeLists.txt -# file if we are building all of GoTools in one project. -IF(GoTools_BUILD_ALL) - # Header files - SET(Newmat_INCLUDE_DIRS ${newmat_SOURCE_DIR}/include - CACHE PATH "Path to Newmat header files") - # Library - SET(Newmat_LIBRARIES newmat - CACHE FILE "Newamt library") -ENDIF(GoTools_BUILD_ALL) - - -# Find header files -FIND_PATH(Newmat_INCLUDE_DIRS "newmat.h" - "/usr/include/newmat" - "/usr/local/include/newmat" - "$ENV{HOME}/include/newmat" - "$ENV{HOME}/install/include/newmat" - "$ENV{PROGRAMFILES}/newmat/include/newmat" - "$ENV{PROGRAMFILES}/SINTEF/newmat/include/newmat" -) - -# Find library -FIND_LIBRARY(Newmat_LIBRARIES - NAMES newmat - PATHS "$ENV{HOME}/lib" - "$ENV{HOME}/install/lib" - "$ENV{PROGRAMFILES}/newmat/lib" - "$ENV{PROGRAMFILES}/SINTEF/newmat/lib" -) - -# Check that we have found everything -SET(Newmat_FOUND FALSE) -IF(Newmat_INCLUDE_DIRS AND Newmat_LIBRARIES) - SET(Newmat_FOUND TRUE) -ENDIF(Newmat_INCLUDE_DIRS AND Newmat_LIBRARIES) diff --git a/FindSISL.cmake b/FindSISL.cmake deleted file mode 100644 index 91747e7d..00000000 --- a/FindSISL.cmake +++ /dev/null @@ -1,38 +0,0 @@ -# - Tries to find the SISL library -# -# Written by: jan.b.thomassen@sintef.no -# - -# 'GoTools_BUILD_ALL' will be defined in the top-level CMakeLists.txt -# file if we are building all of GoTools in one project. -IF(GoTools_BUILD_ALL) - # Header files - SET(SISL_INCLUDE_DIRS ${sisl_SOURCE_DIR}/include - CACHE PATH "Path to SISL header files") - # Library - SET(SISL_LIBRARIES sisl - CACHE FILE "SISL library") -ENDIF(GoTools_BUILD_ALL) - -# Find header files -FIND_PATH(SISL_INCLUDE_DIRS "sisl.h" - "$ENV{HOME}/include" - "$ENV{HOME}/install/include" - "C:/Program Files (x86)/sisl/include" - "$ENV{PROGRAMFILES}/SINTEF/sisl/include" -) - -# Find library -FIND_LIBRARY(SISL_LIBRARIES - NAMES sisl - PATHS "$ENV{HOME}/lib" - "$ENV{HOME}/install/lib" - "C:/Program Files (x86)/sisl/lib" - "$ENV{PROGRAMFILES}/SINTEF/sisl/lib" -) - -# Check that we have found everything -SET(SISL_FOUND FALSE) -IF(SISL_INCLUDE_DIRS AND SISL_LIBRARIES) - SET(SISL_FOUND TRUE) -ENDIF(SISL_INCLUDE_DIRS AND SISL_LIBRARIES) diff --git a/FindTTL.cmake b/FindTTL.cmake deleted file mode 100644 index 6fb45c01..00000000 --- a/FindTTL.cmake +++ /dev/null @@ -1,39 +0,0 @@ -# - Tries to find the TTL library -# -# Written by: jan.b.thomassen@sintef.no -# - -# 'GoTools_BUILD_ALL' will be defined in the top-level CMakeLists.txt -# file if we are building all of GoTools in one project. -IF(GoTools_BUILD_ALL) - # Header files - SET(TTL_INCLUDE_DIRS ${ttl_SOURCE_DIR}/include - CACHE PATH "Path to TTL header files") - # Library - SET(TTL_LIBRARIES ttl - CACHE FILE "TTL library") -ENDIF(GoTools_BUILD_ALL) - -# Find header files -FIND_PATH(TTL_INCLUDE_DIRS - "ttl/ttl.h" - "$ENV{HOME}/include" - "$ENV{HOME}/install/include" - "C:/Program Files (x86)/ttl/include" - "$ENV{PROGRAMFILES}/SINTEF/ttl/include/newmat" -) - -# Find library -FIND_LIBRARY(TTL_LIBRARIES - NAMES ttl - PATHS "$ENV{HOME}/lib" - "$ENV{HOME}/install/lib" - "C:/Program Files (x86)/ttl/lib" - "$ENV{PROGRAMFILES}/SINTEF/ttl/lib" -) - -# Check that we have found everything -SET(TTL_FOUND FALSE) -IF(TTL_INCLUDE_DIRS AND TTL_LIBRARIES) - SET(TTL_FOUND TRUE) -ENDIF(TTL_INCLUDE_DIRS AND TTL_LIBRARIES) From 138b11980dd894380371edf621a6d4d348ab8e12 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Thu, 10 Apr 2025 17:02:24 +0200 Subject: [PATCH 18/24] Fixed windows issue with cmake config install location. --- .gitignore | 1 + INSTALL | 20 ++++- compositemodel/CMakeLists.txt | 20 ++--- gotools-core/CMakeLists.txt | 27 +++--- igeslib/CMakeLists.txt | 20 ++--- implicitization/CMakeLists.txt | 19 ++-- intersections/CMakeLists.txt | 20 ++--- isogeometric_model/CMakeLists.txt | 19 ++-- lrsplines2D/CMakeLists.txt | 27 +++--- lrsplines3D/CMakeLists.txt | 20 ++--- parametrization/CMakeLists.txt | 21 +++-- qualitymodule/CMakeLists.txt | 19 ++-- topology/CMakeLists.txt | 19 ++-- trivariate/CMakeLists.txt | 20 ++--- trivariatemodel/CMakeLists.txt | 20 ++--- viewlib/CMakeLists.txt | 129 +++++++++++++++++---------- viewlib/cmake/viewlibConfig.cmake.in | 8 ++ 17 files changed, 231 insertions(+), 198 deletions(-) create mode 100644 viewlib/cmake/viewlibConfig.cmake.in diff --git a/.gitignore b/.gitignore index 82dbd0aa..64a0a441 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ gotools-core/include/GoTools/geometry/GoTools_version.h doc gpl/generate_gpl_headers +*~ diff --git a/INSTALL b/INSTALL index f6af964b..d8760a7a 100644 --- a/INSTALL +++ b/INSTALL @@ -161,7 +161,17 @@ CMake: - On Windows 10 the HOME variable is not set. This is needed by the cmake setup. Add HOME to the user environment variables, pointing to the home directory (typically 'C:\Users\'). - For 64 bit applications using Visual Studio 2015 you should make sure to choose x64 when - generating the solution (default is x86). + generating the solution using cmake-gui (default is x86). +- Optionally you may run cmake from the command line, in this example using Visual Studio 2019: + $ mkdir build_msvc2019 + $ cd build_msvc2019 + $ cmake ../ -G "Visual Studio 16 2019" + +Build the project in Release mode from the build folder (replace with 'Debug' for building in debug mode): +$ cmake --build . --config Release + +Install using gsudo/sudo (or run in a shell with administrator privileges): +$ gsudo cmake --install . Building the gotools Visual Studio solution: - Open the gotools Visual Studio solution file that was generated by cmake. Choose either Release or @@ -169,12 +179,14 @@ Building the gotools Visual Studio solution: Running the tests from a shell (like Git Bash): - Run the tests in default (release) mode: - $ ctest.exe + $ ctest +- Run the tests in parallel: + $ ctest -j ${NUMBER_OF_PROCESSORS} - Run the tests in debug mode: - $ ctest.exe -C debug + $ ctest -C debug - Run only the acceptance tests (use unit or integration for the other test types, using a unique substring like 'cep' will also work): - $ ctest.exe -L acceptance + $ ctest -L acceptance MacOS diff --git a/compositemodel/CMakeLists.txt b/compositemodel/CMakeLists.txt index b15b1ebb..c9df49f7 100644 --- a/compositemodel/CMakeLists.txt +++ b/compositemodel/CMakeLists.txt @@ -123,21 +123,21 @@ endif() # Create a tmp dir for generated data. execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/tmp) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoCompositeModel target with export set install(TARGETS GoCompositeModel EXPORT GoCompositeModelTargets @@ -157,7 +157,7 @@ install(DIRECTORY include/ install(EXPORT GoCompositeModelTargets FILE GoCompositeModelTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoCompositeModel + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoCompositeModel ) # Generate and install the Config and Version files @@ -170,13 +170,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoCompositeModelConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoCompositeModelConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoCompositeModel + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoCompositeModel ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoCompositeModelConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoCompositeModelConfigVersion.cmake" - DESTINATION lib/cmake/GoCompositeModel + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoCompositeModel ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoCompositeModel.so) diff --git a/gotools-core/CMakeLists.txt b/gotools-core/CMakeLists.txt index ff0c9356..673cfea9 100644 --- a/gotools-core/CMakeLists.txt +++ b/gotools-core/CMakeLists.txt @@ -98,27 +98,20 @@ if (GoTools_COPY_DATA) DESTINATION ${GoToolsCore_BINARY_DIR}/examples) endif() -# # Set default installation prefix -# # IF(WIN32) -# # SET(GoTools_INSTALL_PREFIX "$ENV{PROGRAMFILES}/SINTEF/GoTools" CACHE PATH "Path to install GoTools") -# # ENDIF() -# if(NOT DEFINED GoTools_INSTALL_PREFIX) -# SET(GoTools_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Path to install GoTools") -# endif() -# 'install' target +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === -include(CMakePackageConfigHelpers) - # Install the GoToolsCore target install(TARGETS GoToolsCore EXPORT GoToolsCoreTargets @@ -137,7 +130,7 @@ install(DIRECTORY include/ # Export the targets install(EXPORT GoToolsCoreTargets FILE GoToolsCoreTargets.cmake - DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoToolsCore ) # Generate version file @@ -151,14 +144,14 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoToolsCoreConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfig.cmake" - INSTALL_DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoToolsCore ) # Install the config files install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfigVersion.cmake" - DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoToolsCore ) # Optional stripping diff --git a/igeslib/CMakeLists.txt b/igeslib/CMakeLists.txt index e545ed41..029c7e36 100644 --- a/igeslib/CMakeLists.txt +++ b/igeslib/CMakeLists.txt @@ -63,21 +63,21 @@ if (GoTools_COPY_DATA) DESTINATION ${GoIgeslib_BINARY_DIR}/examples) endif() +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoToolsCore target with export set install(TARGETS GoIgeslib EXPORT GoIgeslibTargets @@ -97,7 +97,7 @@ install(DIRECTORY include/ install(EXPORT GoIgeslibTargets FILE GoIgeslibTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoIgeslib + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIgeslib ) # Generate and install the Config and Version files @@ -110,13 +110,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoIgeslibConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoIgeslibConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoIgeslib + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIgeslib ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoIgeslibConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoIgeslibConfigVersion.cmake" - DESTINATION lib/cmake/GoIgeslib + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIgeslib ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoIgeslib.so) diff --git a/implicitization/CMakeLists.txt b/implicitization/CMakeLists.txt index a25cd405..08155c66 100644 --- a/implicitization/CMakeLists.txt +++ b/implicitization/CMakeLists.txt @@ -70,22 +70,21 @@ if (GoTools_COPY_DATA) ) endif() +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoToolsCore target with export set install(TARGETS GoImplicitization EXPORT GoImplicitizationTargets @@ -105,7 +104,7 @@ install(DIRECTORY include/ install(EXPORT GoImplicitizationTargets FILE GoImplicitizationTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoImplicitization + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoImplicitization ) # Generate and install the Config and Version files @@ -118,13 +117,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoImplicitizationConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoImplicitizationConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoImplicitization + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoImplicitization ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoImplicitizationConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoImplicitizationConfigVersion.cmake" - DESTINATION lib/cmake/GoImplicitization + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoImplicitization ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoImplicitization.so) diff --git a/intersections/CMakeLists.txt b/intersections/CMakeLists.txt index 840c7136..0a16a700 100644 --- a/intersections/CMakeLists.txt +++ b/intersections/CMakeLists.txt @@ -51,21 +51,21 @@ IF(GoTools_COMPILE_APPS) ENDFOREACH(app) ENDIF(GoTools_COMPILE_APPS) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoToolsCore target with export set install(TARGETS GoIntersections EXPORT GoIntersectionsTargets @@ -85,7 +85,7 @@ install(DIRECTORY include/ install(EXPORT GoIntersectionsTargets FILE GoIntersectionsTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoIntersections + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIntersections ) # Generate and install the Config and Version files @@ -98,13 +98,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoIntersectionsConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoIntersectionsConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoIntersections + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIntersections ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoIntersectionsConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoIntersectionsConfigVersion.cmake" - DESTINATION lib/cmake/GoIntersections + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIntersections ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoIntersections.so) diff --git a/isogeometric_model/CMakeLists.txt b/isogeometric_model/CMakeLists.txt index fd076272..62f53dec 100644 --- a/isogeometric_model/CMakeLists.txt +++ b/isogeometric_model/CMakeLists.txt @@ -85,22 +85,21 @@ if (GoTools_COPY_DATA) ) endif() +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoToolsCore target with export set install(TARGETS GoIsogeometricModel EXPORT GoIsogeometricModelTargets @@ -120,7 +119,7 @@ install(DIRECTORY include/ install(EXPORT GoIsogeometricModelTargets FILE GoIsogeometricModelTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoIsogeometricModel + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIsogeometricModel ) # Generate and install the Config and Version files @@ -133,13 +132,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoIsogeometricModelConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoIsogeometricModelConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoIsogeometricModel + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIsogeometricModel ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoIsogeometricModelConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoIsogeometricModelConfigVersion.cmake" - DESTINATION lib/cmake/GoIsogeometricModel + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoIsogeometricModel ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoIsogeometricModel.so) diff --git a/lrsplines2D/CMakeLists.txt b/lrsplines2D/CMakeLists.txt index 658170d3..decfd637 100644 --- a/lrsplines2D/CMakeLists.txt +++ b/lrsplines2D/CMakeLists.txt @@ -100,28 +100,21 @@ if (GoTools_COPY_DATA) FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../gotools-data/lrsplines2D/data DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) endif() +# === Install and Export CMake Config Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install and Export CMake Config Package === - -# if(NOT DEFINED GoTools_INSTALL_PREFIX) -# set(GoTools_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) -# endif() -if(NOT DEFINED GoTools_INSTALL_PREFIX) - SET(GoTools_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Path to install GoTools") -endif() - -include(CMakePackageConfigHelpers) - # Install the GoLRspline2D target install(TARGETS GoLRspline2D EXPORT GoLRspline2DTargets @@ -140,7 +133,7 @@ install(DIRECTORY include/ # Export the target without namespace install(EXPORT GoLRspline2DTargets FILE GoLRsplines2DTargets.cmake - DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoLRsplines2D ) # Generate the version file for find_package() @@ -154,14 +147,14 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoLRsplines2DConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfig.cmake" - INSTALL_DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoLRsplines2D ) # Install the generated config files install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfigVersion.cmake" - DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoLRsplines2D ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoLRspline2D.so) diff --git a/lrsplines3D/CMakeLists.txt b/lrsplines3D/CMakeLists.txt index da759599..f759c204 100644 --- a/lrsplines3D/CMakeLists.txt +++ b/lrsplines3D/CMakeLists.txt @@ -137,21 +137,21 @@ ENDIF() # Create a tmp directory. file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp) +# === Install and Export CMake Config Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install and Export CMake Config Package === - -include(CMakePackageConfigHelpers) - # Install the GoLRspline2D target install(TARGETS GoLRspline3D EXPORT GoLRspline3DTargets @@ -170,7 +170,7 @@ install(DIRECTORY include/ # Export the target without namespace install(EXPORT GoLRspline3DTargets FILE GoLRsplines3DTargets.cmake - DESTINATION lib/cmake/GoLRsplines3D + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoLRsplines3D ) # Generate the version file for find_package() @@ -184,14 +184,14 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoLRsplines3DConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines3DConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoLRsplines3D + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoLRsplines3D ) # Install the generated config files install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines3DConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines3DConfigVersion.cmake" - DESTINATION lib/cmake/GoLRsplines3D + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoLRsplines3D ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoLRspline3D.so) diff --git a/parametrization/CMakeLists.txt b/parametrization/CMakeLists.txt index 5c6b9af7..bcccd84a 100644 --- a/parametrization/CMakeLists.txt +++ b/parametrization/CMakeLists.txt @@ -57,22 +57,21 @@ if (GoTools_COPY_DATA) ) endif() -# 'install' target +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoToolsCore target with export set install(TARGETS parametrization EXPORT parametrizationTargets @@ -92,7 +91,7 @@ install(DIRECTORY include/ install(EXPORT parametrizationTargets FILE parametrizationTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/parametrization + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/parametrization ) # Generate and install the Config and Version files @@ -105,13 +104,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/parametrizationConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/parametrizationConfig.cmake" - INSTALL_DESTINATION lib/cmake/parametrization + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/parametrization ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/parametrizationConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/parametrizationConfigVersion.cmake" - DESTINATION lib/cmake/parametrization + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/parametrization ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libparametrization.so) diff --git a/qualitymodule/CMakeLists.txt b/qualitymodule/CMakeLists.txt index 9f8906b8..dd9c9169 100644 --- a/qualitymodule/CMakeLists.txt +++ b/qualitymodule/CMakeLists.txt @@ -77,22 +77,21 @@ IF(GoTools_COMPILE_TESTS) ADD_APPS(test/acceptance "Acceptance Tests" TRUE) ENDIF(GoTools_COMPILE_TESTS) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoQualityModule target with export set install(TARGETS GoQualityModule EXPORT GoQualityModuleTargets @@ -112,7 +111,7 @@ install(DIRECTORY include/ install(EXPORT GoQualityModuleTargets FILE GoQualityModuleTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoQualityModule + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoQualityModule ) # Generate and install the Config and Version files @@ -125,13 +124,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoQualityModuleConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoQualityModuleConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoQualityModule + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoQualityModule ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoQualityModuleConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoQualityModuleConfigVersion.cmake" - DESTINATION lib/cmake/GoQualityModule + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoQualityModule ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoQualityModule.so) diff --git a/topology/CMakeLists.txt b/topology/CMakeLists.txt index c0621c53..a6f5e3d3 100644 --- a/topology/CMakeLists.txt +++ b/topology/CMakeLists.txt @@ -62,22 +62,21 @@ IF(GoTools_COMPILE_TESTS) ADD_APPS(test/acceptance "Acceptance Tests" TRUE) ENDIF(GoTools_COMPILE_TESTS) +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoTopology target with export set install(TARGETS GoTopology EXPORT GoTopologyTargets @@ -97,7 +96,7 @@ install(DIRECTORY include/ install(EXPORT GoTopologyTargets FILE GoTopologyTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoTopology + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTopology ) # Generate and install the Config and Version files @@ -110,13 +109,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoTopologyConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoTopologyConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoTopology + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTopology ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoTopologyConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoTopologyConfigVersion.cmake" - DESTINATION lib/cmake/GoTopology + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTopology ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoTopology.so) diff --git a/trivariate/CMakeLists.txt b/trivariate/CMakeLists.txt index 21c621fe..d953b3a9 100644 --- a/trivariate/CMakeLists.txt +++ b/trivariate/CMakeLists.txt @@ -64,21 +64,21 @@ if (GoTools_COPY_DATA) DESTINATION ${GoTrivariate_BINARY_DIR}/examples) endif() +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoTrivariate target with export set install(TARGETS GoTrivariate EXPORT GoTrivariateTargets @@ -97,7 +97,7 @@ install(DIRECTORY include/ # Export the targets to a file install(EXPORT GoTrivariateTargets FILE GoTrivariateTargets.cmake - DESTINATION lib/cmake/GoTrivariate + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTrivariate ) # Generate and install the Config and Version files @@ -110,13 +110,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoTrivariateConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoTrivariate + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTrivariate ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateConfigVersion.cmake" - DESTINATION lib/cmake/GoTrivariate + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTrivariate ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoTrivariate.so) diff --git a/trivariatemodel/CMakeLists.txt b/trivariatemodel/CMakeLists.txt index f8cc1362..17d96993 100644 --- a/trivariatemodel/CMakeLists.txt +++ b/trivariatemodel/CMakeLists.txt @@ -97,21 +97,21 @@ if (GoTools_COPY_DATA) DESTINATION ${GoTrivariateModel_BINARY_DIR}/examples) endif() +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - set(CMAKE_INSTALL_BINDIR bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) ENDIF(WIN32) -# === Install Targets and Export Package === - -include(CMakePackageConfigHelpers) - # Install the GoTrivariateModel target with export set install(TARGETS GoTrivariateModel EXPORT GoTrivariateModelTargets @@ -131,7 +131,7 @@ install(DIRECTORY include/ install(EXPORT GoTrivariateModelTargets FILE GoTrivariateModelTargets.cmake #NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore) - DESTINATION lib/cmake/GoTrivariateModel + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTrivariateModel ) # Generate and install the Config and Version files @@ -144,13 +144,13 @@ write_basic_package_version_file( configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoTrivariateModelConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateModelConfig.cmake" - INSTALL_DESTINATION lib/cmake/GoTrivariateModel + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTrivariateModel ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateModelConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GoTrivariateModelConfigVersion.cmake" - DESTINATION lib/cmake/GoTrivariateModel + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GoTrivariateModel ) SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoTrivariateModel.so) diff --git a/viewlib/CMakeLists.txt b/viewlib/CMakeLists.txt index 9a500085..992656d3 100644 --- a/viewlib/CMakeLists.txt +++ b/viewlib/CMakeLists.txt @@ -286,60 +286,91 @@ endif(ViewlibVolAndLRSupport) # Create a tmp dir for generated data. execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/tmp) -# 'install' target +# === Install Targets and Export Package === + +include(CMakePackageConfigHelpers) + +# Setup standard install directories if(WIN32) - # Windows - # lib - install(TARGETS viewlib DESTINATION ${GoTools_INSTALL_PREFIX}/lib) - # include - install(DIRECTORY include/GoTools/viewlib - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) - # include ui files - install(DIRECTORY ${viewlib_BINARY_DIR}/include/GoTools/viewlib/ - DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools/viewlib - FILES_MATCHING PATTERN "ui_*_form.h" - PATTERN ".svn" EXCLUDE - ) - # data - install(DIRECTORY data/ - DESTINATION ${GoTools_INSTALL_PREFIX}/share/viewlib - FILES_MATCHING PATTERN "*.g2" PATTERN "*.igs" - PATTERN ".svn" EXCLUDE - ) - # bin - set(goview_INSTALL_PREFIX "$ENV{PROGRAMFILES}/SINTEF/goview" - CACHE PATH "Path to install goview") - install(TARGETS goview DESTINATION ${goview_INSTALL_PREFIX}) + set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) else() - # Linux - # lib - install(TARGETS viewlib DESTINATION lib COMPONENT viewlib) - # include - install(DIRECTORY include/GoTools/viewlib - DESTINATION include/GoTools - COMPONENT viewlib-dev + include(GNUInstallDirs) +endif() + +# Install viewlib target +install(TARGETS viewlib + EXPORT viewlibTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +# Install viewlib binaries +# Glob all executable files from the build directory +file(GLOB RUNTIME_BINARIES + "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/*" +) + +# Filter and install only actual executable files +foreach(bin ${RUNTIME_BINARIES}) + if(NOT IS_DIRECTORY "${bin}") + get_filename_component(fname "${bin}" NAME) + if(WIN32) + # Windows: Install .exe and .dll + if(fname MATCHES "\\.(exe|dll)$") + install(FILES "${bin}" DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() + else() + # Linux: Install executables without extension + if(NOT fname MATCHES "\\.") + install(FILES "${bin}" PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() + endif() + endif() +endforeach() + +# Install headers (including generated ui_*.h headers) +install(DIRECTORY include/GoTools/viewlib + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/GoTools FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE - ) - # include ui files - install(DIRECTORY ${viewlib_BINARY_DIR}/include/GoTools/viewlib/ - DESTINATION include/GoTools/viewlib - COMPONENT viewlib-dev +) + +install(DIRECTORY ${viewlib_BINARY_DIR}/include/GoTools/viewlib/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/GoTools/viewlib FILES_MATCHING PATTERN "ui_*_form.h" PATTERN ".svn" EXCLUDE - ) - # data - install(DIRECTORY data/ - DESTINATION share/GoTools/viewlib - COMPONENT viewlib - FILES_MATCHING PATTERN "*.g2" PATTERN "*.igs" - PATTERN ".svn" EXCLUDE - ) - # bin - install(TARGETS goview DESTINATION bin COMPONENT viewlib) -endif() +) + +# Export the targets +install(EXPORT viewlibTargets + FILE viewlibTargets.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/viewlib +) + +# Generate version file +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/viewlibConfigVersion.cmake" + VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH} + COMPATIBILITY SameMajorVersion +) + +# Generate config file from template +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/viewlibConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/viewlibConfig.cmake" + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/viewlib +) + +# Install config files +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/viewlibConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/viewlibConfigVersion.cmake" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/viewlib +) +# Optional stripping set(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libviewlib.so) diff --git a/viewlib/cmake/viewlibConfig.cmake.in b/viewlib/cmake/viewlibConfig.cmake.in new file mode 100644 index 00000000..3995b0ba --- /dev/null +++ b/viewlib/cmake/viewlibConfig.cmake.in @@ -0,0 +1,8 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/viewlibTargets.cmake") + +set(VIEWLIB_INCLUDE_DIRS "@CMAKE_INSTALL_INCLUDEDIR@") +set(VIEWLIB_LIBRARIES viewlib) + +check_required_components(viewlib) From 39656e6339f3928285b7201c11699a31c8ffb581 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Thu, 10 Apr 2025 17:17:45 +0200 Subject: [PATCH 19/24] Fixed windows issue with cmake config install location. --- viewlib/CMakeLists.txt | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/viewlib/CMakeLists.txt b/viewlib/CMakeLists.txt index 992656d3..c6000bae 100644 --- a/viewlib/CMakeLists.txt +++ b/viewlib/CMakeLists.txt @@ -309,28 +309,29 @@ install(TARGETS viewlib ) # Install viewlib binaries -# Glob all executable files from the build directory -file(GLOB RUNTIME_BINARIES - "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/*" +# Path to your app build folder +set(APP_BUILD_DIR "${viewlib_BINARY_DIR}/app") + +# Determine configuration subdir (e.g., Debug/Release) — used by multi-config generators +if(CMAKE_CONFIGURATION_TYPES) + # Multi-config generator (e.g., Visual Studio, Xcode) + set(CONFIG_SUBDIR "$") +else() + # Single-config generator (e.g., Ninja, Unix Makefiles) + set(CONFIG_SUBDIR "") +endif() + +# Path to use at install time — app/[config]/ if multi-config, app/ otherwise +set(APP_RUNTIME_DIR "${APP_BUILD_DIR}/${CONFIG_SUBDIR}") + +# Install everything from app/[config]/ (or app/) into install bin directory +install(DIRECTORY "${APP_RUNTIME_DIR}/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING PATTERN "*" + PATTERN ".svn" EXCLUDE ) -# Filter and install only actual executable files -foreach(bin ${RUNTIME_BINARIES}) - if(NOT IS_DIRECTORY "${bin}") - get_filename_component(fname "${bin}" NAME) - if(WIN32) - # Windows: Install .exe and .dll - if(fname MATCHES "\\.(exe|dll)$") - install(FILES "${bin}" DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif() - else() - # Linux: Install executables without extension - if(NOT fname MATCHES "\\.") - install(FILES "${bin}" PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif() - endif() - endif() -endforeach() +message(STATUS "Will install app runtime files from: ${APP_RUNTIME_DIR}") # Install headers (including generated ui_*.h headers) install(DIRECTORY include/GoTools/viewlib From de95fcc2cdac5c822948261d4bacffdd0b9cc946 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Thu, 10 Apr 2025 17:27:22 +0200 Subject: [PATCH 20/24] Fixed windows issue with cmake config install location. --- viewlib/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/viewlib/CMakeLists.txt b/viewlib/CMakeLists.txt index c6000bae..a14aa97b 100644 --- a/viewlib/CMakeLists.txt +++ b/viewlib/CMakeLists.txt @@ -323,7 +323,7 @@ endif() # Path to use at install time — app/[config]/ if multi-config, app/ otherwise set(APP_RUNTIME_DIR "${APP_BUILD_DIR}/${CONFIG_SUBDIR}") - +#message("APP_RUNTIME_DIR: ${APP_RUNTIME_DIR}") # Install everything from app/[config]/ (or app/) into install bin directory install(DIRECTORY "${APP_RUNTIME_DIR}/" DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -331,7 +331,7 @@ install(DIRECTORY "${APP_RUNTIME_DIR}/" PATTERN ".svn" EXCLUDE ) -message(STATUS "Will install app runtime files from: ${APP_RUNTIME_DIR}") +#message(STATUS "Will install app runtime files from: ${APP_RUNTIME_DIR}") # Install headers (including generated ui_*.h headers) install(DIRECTORY include/GoTools/viewlib From b4e6d88eaa4e77026059edd2fd5ea52e0f109142 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Thu, 10 Apr 2025 19:53:38 +0200 Subject: [PATCH 21/24] Updated ttl to master with new cmake changes. --- ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttl b/ttl index 4d4dd99c..9988d960 160000 --- a/ttl +++ b/ttl @@ -1 +1 @@ -Subproject commit 4d4dd99c3a9a66b4636ca9006d316618e9b46e21 +Subproject commit 9988d96059f088186e50b9211395658ce4cb3f70 From bdb71c26503bb9ffa69b7dfa088af684c889aed7 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Fri, 11 Apr 2025 09:57:54 +0200 Subject: [PATCH 22/24] Renamed windows only GoTools_INSTALL_PREFIX to GoTools_WINDOWS_INSTALL_PREFIX. --- CMakeLists.txt | 2 +- compositemodel/CMakeLists.txt | 6 +++--- gotools-core/CMakeLists.txt | 6 +++--- igeslib/CMakeLists.txt | 6 +++--- implicitization/CMakeLists.txt | 6 +++--- intersections/CMakeLists.txt | 6 +++--- isogeometric_model/CMakeLists.txt | 6 +++--- lrsplines2D/CMakeLists.txt | 6 +++--- lrsplines3D/CMakeLists.txt | 6 +++--- parametrization/CMakeLists.txt | 6 +++--- qualitymodule/CMakeLists.txt | 6 +++--- topology/CMakeLists.txt | 6 +++--- trivariate/CMakeLists.txt | 6 +++--- trivariatemodel/CMakeLists.txt | 6 +++--- viewlib/CMakeLists.txt | 6 +++--- 15 files changed, 43 insertions(+), 43 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bb324f12..f895981c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,7 +108,7 @@ ENDIF(CMAKE_CXX_COMPILER_ID MATCHES MSVC) # Set install prefix on Windows IF(WIN32) SET(CMAKE_INSTALL_PREFIX CACHE INTERNAL "") - SET(GoTools_INSTALL_PREFIX "$ENV{PROGRAMFILES}/SINTEF/GoTools" + SET(GoTools_WINDOWS_INSTALL_PREFIX "$ENV{PROGRAMFILES}/SINTEF/GoTools" CACHE PATH "Path to install GoTools") ENDIF(WIN32) # Organize the project in folders (VS only?) diff --git a/compositemodel/CMakeLists.txt b/compositemodel/CMakeLists.txt index c9df49f7..2cf24215 100644 --- a/compositemodel/CMakeLists.txt +++ b/compositemodel/CMakeLists.txt @@ -130,9 +130,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/gotools-core/CMakeLists.txt b/gotools-core/CMakeLists.txt index 673cfea9..5a2184ce 100644 --- a/gotools-core/CMakeLists.txt +++ b/gotools-core/CMakeLists.txt @@ -104,9 +104,9 @@ include(CMakePackageConfigHelpers) IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/igeslib/CMakeLists.txt b/igeslib/CMakeLists.txt index 029c7e36..6c6f576b 100644 --- a/igeslib/CMakeLists.txt +++ b/igeslib/CMakeLists.txt @@ -70,9 +70,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/implicitization/CMakeLists.txt b/implicitization/CMakeLists.txt index 08155c66..90eb46be 100644 --- a/implicitization/CMakeLists.txt +++ b/implicitization/CMakeLists.txt @@ -77,9 +77,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/intersections/CMakeLists.txt b/intersections/CMakeLists.txt index 0a16a700..f9bc3a4e 100644 --- a/intersections/CMakeLists.txt +++ b/intersections/CMakeLists.txt @@ -58,9 +58,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/isogeometric_model/CMakeLists.txt b/isogeometric_model/CMakeLists.txt index 62f53dec..e8a332c8 100644 --- a/isogeometric_model/CMakeLists.txt +++ b/isogeometric_model/CMakeLists.txt @@ -92,9 +92,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/lrsplines2D/CMakeLists.txt b/lrsplines2D/CMakeLists.txt index decfd637..fcb42142 100644 --- a/lrsplines2D/CMakeLists.txt +++ b/lrsplines2D/CMakeLists.txt @@ -107,9 +107,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/lrsplines3D/CMakeLists.txt b/lrsplines3D/CMakeLists.txt index f759c204..ec5e227e 100644 --- a/lrsplines3D/CMakeLists.txt +++ b/lrsplines3D/CMakeLists.txt @@ -144,9 +144,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/parametrization/CMakeLists.txt b/parametrization/CMakeLists.txt index bcccd84a..7ded4f5f 100644 --- a/parametrization/CMakeLists.txt +++ b/parametrization/CMakeLists.txt @@ -64,9 +64,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/qualitymodule/CMakeLists.txt b/qualitymodule/CMakeLists.txt index dd9c9169..43a03885 100644 --- a/qualitymodule/CMakeLists.txt +++ b/qualitymodule/CMakeLists.txt @@ -84,9 +84,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/topology/CMakeLists.txt b/topology/CMakeLists.txt index a6f5e3d3..7ad069df 100644 --- a/topology/CMakeLists.txt +++ b/topology/CMakeLists.txt @@ -69,9 +69,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/trivariate/CMakeLists.txt b/trivariate/CMakeLists.txt index d953b3a9..7c77bfb4 100644 --- a/trivariate/CMakeLists.txt +++ b/trivariate/CMakeLists.txt @@ -71,9 +71,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/trivariatemodel/CMakeLists.txt b/trivariatemodel/CMakeLists.txt index 17d96993..19dee69a 100644 --- a/trivariatemodel/CMakeLists.txt +++ b/trivariatemodel/CMakeLists.txt @@ -104,9 +104,9 @@ include(CMakePackageConfigHelpers) # 'install' target IF(WIN32) # Windows - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) ELSE(WIN32) # Linux include(GNUInstallDirs) diff --git a/viewlib/CMakeLists.txt b/viewlib/CMakeLists.txt index a14aa97b..04a82d48 100644 --- a/viewlib/CMakeLists.txt +++ b/viewlib/CMakeLists.txt @@ -292,9 +292,9 @@ include(CMakePackageConfigHelpers) # Setup standard install directories if(WIN32) - set(CMAKE_INSTALL_LIBDIR ${GoTools_INSTALL_PREFIX}/lib) - set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_INSTALL_PREFIX}/include) - set(CMAKE_INSTALL_BINDIR ${GoTools_INSTALL_PREFIX}/bin) + set(CMAKE_INSTALL_LIBDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_INCLUDEDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/include) + set(CMAKE_INSTALL_BINDIR ${GoTools_WINDOWS_INSTALL_PREFIX}/bin) else() include(GNUInstallDirs) endif() From e36e87ff7a322845e7f0cd2e5c4c6009fcf64447 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Fri, 11 Apr 2025 11:29:31 +0200 Subject: [PATCH 23/24] Updated install guide. --- INSTALL | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/INSTALL b/INSTALL index d8760a7a..97be0fcd 100644 --- a/INSTALL +++ b/INSTALL @@ -71,28 +71,28 @@ A set of options to control the build can be accessed in CMake (names starting w example, you can turn on/off building the various modules by checking/unchecking GoTools_COMPILE_MODULE_. -If a C++11 compliant compiler is not available, the building process uses boost::shared_ptr instead of -std::shared_ptr. +If a C++11 compliant compiler is not available, the building process uses boost::shared_ptr instead +of std::shared_ptr. Windows ********* The code has been tested using Visual Studio 2015, 2019 and 2022, with x64. -Make sure that your installment of Visual Studio includes support for Visual C++. When installing Visual -Studio you should select "Desktop development with C++" from the Workloads options. If you did not do -that then you must launch the Visual Studio installer and select "Modify", then select "Desktop -development with C++". Follow further instructions. +Make sure that your installment of Visual Studio includes support for Visual C++. When installing +Visual Studio you should select "Desktop development with C++" from the Workloads options. If you +did not do that then you must launch the Visual Studio installer and select "Modify", then select +"Desktop development with C++". Follow further instructions. -Note that Visual Studio introduced binary compatibility in Visual Studio 2015, allowing the user to mix -binaries built by the VS toolsets v140, v141, v142 and v143 (Visual Studio 2015 and later, with some -specific restrictions). The linker must use a toolset at least as recent as the newest toolset used by -the binaries. +Note that Visual Studio introduced binary compatibility in Visual Studio 2015, allowing the user to +mix binaries built by the VS toolsets v140, v141, v142 and v143 (Visual Studio 2015 and later, with +some specific restrictions). The linker must use a toolset at least as recent as the newest toolset +used by the binaries. How to edit environment variables: - Open the settings application. -- Search for env, select: "Edit the system environment variables" (or "Edit environment variables for - your account" to add them to your user only). +- Search for env, select: "Edit the system environment variables" (or "Edit environment variables + for your account" to add them to your user only). Boost: - Download a binary release for your Visual Studio version. @@ -162,13 +162,15 @@ CMake: user environment variables, pointing to the home directory (typically 'C:\Users\'). - For 64 bit applications using Visual Studio 2015 you should make sure to choose x64 when generating the solution using cmake-gui (default is x86). -- Optionally you may run cmake from the command line, in this example using Visual Studio 2019: +- Optionally you may run cmake from the command line, in this example using Visual Studio 2019 on + an Intel/AMD 64-bit system: $ mkdir build_msvc2019 $ cd build_msvc2019 - $ cmake ../ -G "Visual Studio 16 2019" + $ cmake ../ -G "Visual Studio 16 2019" -A x64 -Build the project in Release mode from the build folder (replace with 'Debug' for building in debug mode): -$ cmake --build . --config Release +Build the project in Release mode from the build folder (replace with 'Debug' for building in debug +mode): +$ cmake --build . --config Release --parallel Install using gsudo/sudo (or run in a shell with administrator privileges): $ gsudo cmake --install . From 30d7a3d8d8dd598a7cb932b78870294c0aa93f48 Mon Sep 17 00:00:00 2001 From: Sverre Briseid Date: Fri, 11 Apr 2025 11:59:26 +0200 Subject: [PATCH 24/24] Increased version number to 5.0.0. First bump in 13 years, lots of changes, including added cmake config setup. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f895981c..26b6724f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,8 +4,8 @@ PROJECT(GoTools) CMAKE_MINIMUM_REQUIRED(VERSION 3.5) # Set version info -SET(GoTools_VERSION_MAJOR 4) -SET(GoTools_VERSION_MINOR 3) +SET(GoTools_VERSION_MAJOR 5) +SET(GoTools_VERSION_MINOR 0) SET(GoTools_VERSION_PATCH 0) SET(GoTools_VERSION "${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH}") SET(GoTools_ABI_VERSION "${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}" CACHE INTERNAL "GoTools ABI version")