From 80c3c13cdf81670072fc0f976612c035ab36c4eb Mon Sep 17 00:00:00 2001 From: Eduard Valeyev Date: Thu, 14 Jan 2021 09:45:16 -0500 Subject: [PATCH 1/3] build from-source-dependencies before building TA --- src/CMakeLists.txt | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8ba82b06d7..79fd5bb6d6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -258,21 +258,9 @@ add_library(tiledarray ${TILEDARRAY_SOURCE_FILES} ${TILEDARRAY_HEADER_FILES}) target_link_libraries(${targetname} PUBLIC MADworld) target_link_libraries(${targetname} PUBLIC Boost::boost) - if (TARGET build-madness) - add_dependencies(${targetname} build-madness) - endif () - if (TARGET eigen3) - add_dependencies(${targetname} eigen3) - endif () - if (TARGET btas) - add_dependencies(${targetname} btas) - endif () - if (TARGET cutt) - add_dependencies(${targetname} cutt) - endif () - if (TARGET Umpire) - add_dependencies(${targetname} Umpire) - endif () + # build all external deps before building tiledarray + add_dependencies(${targetname} External-tiledarray) + # append current CMAKE_CXX_FLAGS string(REPLACE " " ";" CMAKE_CXX_FLAG_LIST "${CMAKE_CXX_FLAGS}") target_compile_options(${targetname} PUBLIC ${CMAKE_CXX_FLAG_LIST}) From 6d9d9baf76c33dc04404d2f973e9320287c6d08e Mon Sep 17 00:00:00 2001 From: Eduard Valeyev Date: Thu, 14 Jan 2021 10:22:45 -0500 Subject: [PATCH 2/3] build cuTT and Umpire using same PIC setting as TA --- external/cutt.cmake | 1 + external/umpire.cmake | 1 + 2 files changed, 2 insertions(+) diff --git a/external/cutt.cmake b/external/cutt.cmake index 942d4f5b07..baf6a6f651 100644 --- a/external/cutt.cmake +++ b/external/cutt.cmake @@ -42,6 +42,7 @@ else() set(CUTT_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_DIR} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} + -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} diff --git a/external/umpire.cmake b/external/umpire.cmake index 54f5ded0d9..ff227c9ba2 100644 --- a/external/umpire.cmake +++ b/external/umpire.cmake @@ -43,6 +43,7 @@ else() set(UMPIRE_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_DIR} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} + -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} From 3dfbeef5467fb56ebaeb5a2fa7c1f459cb378267 Mon Sep 17 00:00:00 2001 From: Eduard Valeyev Date: Thu, 14 Jan 2021 10:23:43 -0500 Subject: [PATCH 3/3] install built-from-source cuTT and Umpire using same mechanism as MADNESS --- external/cutt.cmake | 13 ++++++++++++- external/umpire.cmake | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/external/cutt.cmake b/external/cutt.cmake index baf6a6f651..4023f2b43c 100644 --- a/external/cutt.cmake +++ b/external/cutt.cmake @@ -103,11 +103,22 @@ else() BUILD_COMMAND ${CMAKE_COMMAND} --build . --target cutt -v BUILD_BYPRODUCTS ${CUTT_BUILD_BYPRODUCTS} #--Install step--------------- - INSTALL_COMMAND cmake -E echo "Skipping default install step." + INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "cuTT will be installed during TiledArray's installation." #--Custom targets------------- STEP_TARGETS build ) + # do install of cuTT as part of building TiledArray's install target + install(CODE + "execute_process( + COMMAND \"${CMAKE_COMMAND}\" \"--build\" \".\" \"--target\" \"install\" + WORKING_DIRECTORY \"${EXTERNAL_BUILD_DIR}\" + RESULT_VARIABLE error_code) + if(error_code) + message(FATAL_ERROR \"Failed to install cuTT\") + endif() + ") + # Add cuTT dependency to External add_dependencies(External-tiledarray cutt-build) diff --git a/external/umpire.cmake b/external/umpire.cmake index ff227c9ba2..6c2d49b7f5 100644 --- a/external/umpire.cmake +++ b/external/umpire.cmake @@ -109,11 +109,22 @@ else() BUILD_COMMAND ${CMAKE_COMMAND} --build . -v BUILD_BYPRODUCTS ${UMPIRE_BUILD_BYPRODUCTS} #--Install step--------------- - INSTALL_COMMAND cmake -E echo "Skipping default install step." + INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Umpire will be installed during TiledArray's installation." #--Custom targets------------- STEP_TARGETS build ) + # do install of Umpire as part of building TiledArray's install target + install(CODE + "execute_process( + COMMAND \"${CMAKE_COMMAND}\" \"--build\" \".\" \"--target\" \"install\" + WORKING_DIRECTORY \"${EXTERNAL_BUILD_DIR}\" + RESULT_VARIABLE error_code) + if(error_code) + message(FATAL_ERROR \"Failed to install Umpire\") + endif() + ") + # Add Umpire dependency to External add_dependencies(External-tiledarray Umpire-build)