From f6a2e9802a5e5b7720af2993302ec937ce8afbe5 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Tue, 30 Jan 2024 10:51:58 -0500 Subject: [PATCH 01/11] [cmake] Use GNUInstallDirs to obtain installation directories --- CMakeLists.txt | 3 +++ c++/app4triqs/CMakeLists.txt | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 45ee166a..98638f60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,6 +124,9 @@ target_compile_options(${PROJECT_NAME}_warnings $<$:-Wno-tautological-constant-compare> ) +# Provide GNU Installation directories +include(GNUInstallDirs) + # ############# # Build Project diff --git a/c++/app4triqs/CMakeLists.txt b/c++/app4triqs/CMakeLists.txt index c40ef28d..0986bcc1 100644 --- a/c++/app4triqs/CMakeLists.txt +++ b/c++/app4triqs/CMakeLists.txt @@ -11,7 +11,7 @@ set_target_properties(${PROJECT_NAME}_c PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) target_include_directories(${PROJECT_NAME}_c PUBLIC $) -target_include_directories(${PROJECT_NAME}_c SYSTEM INTERFACE $) +target_include_directories(${PROJECT_NAME}_c SYSTEM INTERFACE $) target_compile_definitions(${PROJECT_NAME}_c PUBLIC APP4TRIQS_GIT_HASH=${PROJECT_GIT_HASH} TRIQS_GIT_HASH=${TRIQS_GIT_HASH} @@ -21,8 +21,8 @@ target_compile_definitions(${PROJECT_NAME}_c PUBLIC ) # Install library and headers -install(TARGETS ${PROJECT_NAME}_c EXPORT ${PROJECT_NAME}-targets DESTINATION lib) -install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION include FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h") +install(TARGETS ${PROJECT_NAME}_c EXPORT ${PROJECT_NAME}-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h") # ========= Static Analyzer Checks ========== From a4565a1b34f715c11a29a194ac692fa90db077ec Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Tue, 30 Jan 2024 10:55:59 -0500 Subject: [PATCH 02/11] Set proper GNU install dirs also in env vars file --- share/app4triqsvars.sh.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/share/app4triqsvars.sh.in b/share/app4triqsvars.sh.in index 87618a18..487b8bc4 100644 --- a/share/app4triqsvars.sh.in +++ b/share/app4triqsvars.sh.in @@ -2,9 +2,9 @@ export @PROJECT_NAME@_ROOT=@CMAKE_INSTALL_PREFIX@ -export CPLUS_INCLUDE_PATH=@CMAKE_INSTALL_PREFIX@/include:$CPLUS_INCLUDE_PATH -export PATH=@CMAKE_INSTALL_PREFIX@/bin:$PATH -export LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:$LIBRARY_PATH -export LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:$LD_LIBRARY_PATH +export CPLUS_INCLUDE_PATH=@CMAKE_INSTALL_FULL_INCLUDEDIR@:$CPLUS_INCLUDE_PATH +export PATH=@CMAKE_INSTALL_FULL_BINDIR@:$PATH +export LIBRARY_PATH=@CMAKE_INSTALL_FULL_LIBDIR@:$LIBRARY_PATH +export LD_LIBRARY_PATH=@CMAKE_INSTALL_FULL_LIBDIR@:$LD_LIBRARY_PATH export CMAKE_PREFIX_PATH=@CMAKE_INSTALL_PREFIX@:$CMAKE_PREFIX_PATH @EXPORT_PYTHON_PATH@ From f6e53b6ef2bd9a0c0bda76890c363d85e7830a13 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Fri, 16 Feb 2024 11:56:00 -0500 Subject: [PATCH 03/11] [jenkins] Add ubuntu-intel build --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0b0fed7b..4097b7b1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -25,7 +25,7 @@ def platforms = [:] /****************** linux builds (in docker) */ /* Each platform must have a corresponding Dockerfile.PLATFORM in triqs/packaging */ -def dockerPlatforms = ["ubuntu-clang", "ubuntu-gcc", "sanitize"] +def dockerPlatforms = ["ubuntu-clang", "ubuntu-gcc", "ubuntu-intel", "sanitize"] /* .each is currently broken in jenkins */ for (int i = 0; i < dockerPlatforms.size(); i++) { def platform = dockerPlatforms[i] From 3e1a77116ef07512ed8e7555531d1af6d6f03fea Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Tue, 27 Feb 2024 12:06:45 -0500 Subject: [PATCH 04/11] [cmake] Consistently use GNUInstallDirs for install commands --- doc/CMakeLists.txt | 2 +- share/CMakeLists.txt | 2 +- share/cmake/CMakeLists.txt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 40eb49cd..77eb64e6 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -74,7 +74,7 @@ endif() # --------------------------------- # Install # --------------------------------- -install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ COMPONENT documentation DESTINATION share/doc/${PROJECT_NAME} +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ COMPONENT documentation DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME} FILES_MATCHING REGEX "\\.(html|pdf|png|gif|jpg|svg|ico|js|xsl|css|py|txt|inv|bib|ttf|woff2|eot|sh)$" PATTERN "_*" diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 8d258a5f..4a76a471 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -18,7 +18,7 @@ if(NOT IS_SUBPROJECT FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.modulefile ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}vars.sh - DESTINATION share/${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME} ) message(STATUS "*********************************************************************************") diff --git a/share/cmake/CMakeLists.txt b/share/cmake/CMakeLists.txt index dad532b3..c845b7b4 100644 --- a/share/cmake/CMakeLists.txt +++ b/share/cmake/CMakeLists.txt @@ -4,7 +4,7 @@ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake - DESTINATION lib/cmake/${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) -install(EXPORT ${PROJECT_NAME}-targets NAMESPACE ${PROJECT_NAME}:: DESTINATION lib/cmake/${PROJECT_NAME}) +install(EXPORT ${PROJECT_NAME}-targets NAMESPACE ${PROJECT_NAME}:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) From d202f698fef7beecede3a10c20d8d511999e2faa Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Tue, 27 Feb 2024 12:19:10 -0500 Subject: [PATCH 05/11] [cmake] Minor improvements in top-level CMakeLists.txt --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 98638f60..1909be8f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ if(NOT ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} VERSION_EQUAL ${TRIQS_V message(FATAL_ERROR "The ${PROJECT_NAME} version ${PROJECT_VERSION} is not compatible with TRIQS version ${TRIQS_VERSION}.") endif() -# Default Install directory to TRIQS_ROOT if not given or invalid. +# Default Install directory to TRIQS_ROOT if not given or when provided as relative path. if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR (NOT IS_ABSOLUTE ${CMAKE_INSTALL_PREFIX})) message(STATUS "No install prefix given (or invalid). Defaulting to TRIQS_ROOT") set(CMAKE_INSTALL_PREFIX ${TRIQS_ROOT} CACHE PATH "default install path" FORCE) @@ -87,12 +87,12 @@ if(Build_Tests) enable_testing() endif() -# Build static libraries by default -option(BUILD_SHARED_LIBS "Enable compilation of shared libraries" OFF) - # ############ # Global Compilation Settings +# Build static libraries by default +option(BUILD_SHARED_LIBS "Enable compilation of shared libraries" OFF) + # Export the list of compile-commands into compile_commands.json set(CMAKE_EXPORT_COMPILE_COMMANDS ON) From 1ac5c875e40efe5e6028c210a01e039734073e67 Mon Sep 17 00:00:00 2001 From: Thomas Hahn Date: Wed, 28 Feb 2024 16:10:12 -0500 Subject: [PATCH 06/11] [cmake] Use unstable branch of cpp2py --- deps/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index f6a3b895..e26dfbae 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -52,7 +52,7 @@ if(PythonSupport OR (NOT IS_SUBPROJECT AND Build_Documentation)) external_dependency(Cpp2Py GIT_REPO https://github.com/TRIQS/cpp2py VERSION 2.0 - GIT_TAG master + GIT_TAG unstable BUILD_ALWAYS EXCLUDE_FROM_ALL ) From e92057573d5c3db9dc1fce6f386e2ae57f4b124d Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Fri, 1 Mar 2024 10:37:51 -0500 Subject: [PATCH 07/11] [cmake] Fix target inclusion directory to use GNUInstallDirs --- share/cmake/app4triqs-config.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/cmake/app4triqs-config.cmake.in b/share/cmake/app4triqs-config.cmake.in index f5a84276..b3490607 100644 --- a/share/cmake/app4triqs-config.cmake.in +++ b/share/cmake/app4triqs-config.cmake.in @@ -24,7 +24,7 @@ set(@PROJECT_NAME@_ROOT @CMAKE_INSTALL_PREFIX@ CACHE STRING "@PROJECT_NAME@ root #find_dep(depname 1.0) # Include the exported targets of this project -include(@CMAKE_INSTALL_PREFIX@/lib/cmake/@PROJECT_NAME@/@PROJECT_NAME@-targets.cmake) +include(@CMAKE_INSTALL_LIBDIR@/cmake/@PROJECT_NAME@/@PROJECT_NAME@-targets.cmake) message(STATUS "Found @PROJECT_NAME@-config.cmake with version @PROJECT_VERSION@, hash = @PROJECT_GIT_HASH@, root = @CMAKE_INSTALL_PREFIX@") From 8d850803cb12cf92662d21c7946901bb3abe0af8 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Fri, 1 Mar 2024 13:55:33 -0500 Subject: [PATCH 08/11] [cmake] Only use GNUInstallDirs for LIBDIR --- c++/app4triqs/CMakeLists.txt | 2 +- doc/CMakeLists.txt | 2 +- share/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/c++/app4triqs/CMakeLists.txt b/c++/app4triqs/CMakeLists.txt index 0986bcc1..4d12e778 100644 --- a/c++/app4triqs/CMakeLists.txt +++ b/c++/app4triqs/CMakeLists.txt @@ -22,7 +22,7 @@ target_compile_definitions(${PROJECT_NAME}_c PUBLIC # Install library and headers install(TARGETS ${PROJECT_NAME}_c EXPORT ${PROJECT_NAME}-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h") +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION include FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h") # ========= Static Analyzer Checks ========== diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 77eb64e6..40eb49cd 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -74,7 +74,7 @@ endif() # --------------------------------- # Install # --------------------------------- -install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ COMPONENT documentation DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME} +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ COMPONENT documentation DESTINATION share/doc/${PROJECT_NAME} FILES_MATCHING REGEX "\\.(html|pdf|png|gif|jpg|svg|ico|js|xsl|css|py|txt|inv|bib|ttf|woff2|eot|sh)$" PATTERN "_*" diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 4a76a471..8d258a5f 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -18,7 +18,7 @@ if(NOT IS_SUBPROJECT FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.modulefile ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}vars.sh - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME} + DESTINATION share/${PROJECT_NAME} ) message(STATUS "*********************************************************************************") From 7bac90fdcba8ab7f7a72a9b198873f1a0b16c564 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Fri, 1 Mar 2024 13:55:40 -0500 Subject: [PATCH 09/11] [cmake] Correct target file inclusion PATH to be absolute --- share/cmake/app4triqs-config.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/cmake/app4triqs-config.cmake.in b/share/cmake/app4triqs-config.cmake.in index b3490607..b6bb5bbd 100644 --- a/share/cmake/app4triqs-config.cmake.in +++ b/share/cmake/app4triqs-config.cmake.in @@ -24,7 +24,7 @@ set(@PROJECT_NAME@_ROOT @CMAKE_INSTALL_PREFIX@ CACHE STRING "@PROJECT_NAME@ root #find_dep(depname 1.0) # Include the exported targets of this project -include(@CMAKE_INSTALL_LIBDIR@/cmake/@PROJECT_NAME@/@PROJECT_NAME@-targets.cmake) +include(@CMAKE_INSTALL_FULL_LIBDIR@/cmake/@PROJECT_NAME@/@PROJECT_NAME@-targets.cmake) message(STATUS "Found @PROJECT_NAME@-config.cmake with version @PROJECT_VERSION@, hash = @PROJECT_GIT_HASH@, root = @CMAKE_INSTALL_PREFIX@") From 9c6917526c7a21e99cbabb8a88c4ca259ca6e6b9 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Mon, 4 Mar 2024 17:25:14 -0500 Subject: [PATCH 10/11] [cmake] Do not define DEBUG macros for RelWithDebInfo builds --- c++/app4triqs/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/c++/app4triqs/CMakeLists.txt b/c++/app4triqs/CMakeLists.txt index 4d12e778..fda42add 100644 --- a/c++/app4triqs/CMakeLists.txt +++ b/c++/app4triqs/CMakeLists.txt @@ -15,9 +15,9 @@ target_include_directories(${PROJECT_NAME}_c SYSTEM INTERFACE $:APP4TRIQS_DEBUG> - $<$:TRIQS_DEBUG> - $<$:TRIQS_ARRAYS_ENFORCE_BOUNDCHECK> + $<$:APP4TRIQS_DEBUG> + $<$:TRIQS_DEBUG> + $<$:TRIQS_ARRAYS_ENFORCE_BOUNDCHECK> ) # Install library and headers From 44580aad298c14abe8267f6a0d60bdb9a24db023 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Mon, 4 Mar 2024 17:51:58 -0500 Subject: [PATCH 11/11] Additional corrections to 8d850803 --- c++/app4triqs/CMakeLists.txt | 2 +- share/app4triqsvars.sh.in | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/c++/app4triqs/CMakeLists.txt b/c++/app4triqs/CMakeLists.txt index fda42add..5f51a380 100644 --- a/c++/app4triqs/CMakeLists.txt +++ b/c++/app4triqs/CMakeLists.txt @@ -11,7 +11,7 @@ set_target_properties(${PROJECT_NAME}_c PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) target_include_directories(${PROJECT_NAME}_c PUBLIC $) -target_include_directories(${PROJECT_NAME}_c SYSTEM INTERFACE $) +target_include_directories(${PROJECT_NAME}_c SYSTEM INTERFACE $) target_compile_definitions(${PROJECT_NAME}_c PUBLIC APP4TRIQS_GIT_HASH=${PROJECT_GIT_HASH} TRIQS_GIT_HASH=${TRIQS_GIT_HASH} diff --git a/share/app4triqsvars.sh.in b/share/app4triqsvars.sh.in index 487b8bc4..a499f10b 100644 --- a/share/app4triqsvars.sh.in +++ b/share/app4triqsvars.sh.in @@ -2,8 +2,8 @@ export @PROJECT_NAME@_ROOT=@CMAKE_INSTALL_PREFIX@ -export CPLUS_INCLUDE_PATH=@CMAKE_INSTALL_FULL_INCLUDEDIR@:$CPLUS_INCLUDE_PATH -export PATH=@CMAKE_INSTALL_FULL_BINDIR@:$PATH +export CPLUS_INCLUDE_PATH=@CMAKE_INSTALL_PREFIX@/include:$CPLUS_INCLUDE_PATH +export PATH=@CMAKE_INSTALL_PREFIX@/bin:$PATH export LIBRARY_PATH=@CMAKE_INSTALL_FULL_LIBDIR@:$LIBRARY_PATH export LD_LIBRARY_PATH=@CMAKE_INSTALL_FULL_LIBDIR@:$LD_LIBRARY_PATH export CMAKE_PREFIX_PATH=@CMAKE_INSTALL_PREFIX@:$CMAKE_PREFIX_PATH