From 9ce405d13e2b482ccfc4b2922f60be6ad4d45df9 Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Tue, 29 Dec 2020 10:27:54 +0100 Subject: [PATCH 1/3] Fix subproject build --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d62689913..64d8a9d92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.14.0) project(stdlib Fortran) enable_testing() -include(${CMAKE_SOURCE_DIR}/cmake/stdlib.cmake) +include(${PROJECT_SOURCE_DIR}/cmake/stdlib.cmake) # --- compiler options if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU) From 49da9735caf9fad19edf8c79de4701bbcf4926db Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Tue, 29 Dec 2020 10:47:04 +0100 Subject: [PATCH 2/3] Do not install stdlib if subproject is not a shared library --- CMakeLists.txt | 1 + src/CMakeLists.txt | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 64d8a9d92..9fbe96067 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.14.0) project(stdlib Fortran) enable_testing() +get_directory_property(IS_SUBPROJECT PARENT_DIRECTORY) include(${PROJECT_SOURCE_DIR}/cmake/stdlib.cmake) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e2caa0bbc..6b108c332 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -62,9 +62,11 @@ endif() add_subdirectory(tests) -install(TARGETS fortran_stdlib - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - ) -install(DIRECTORY ${LIB_MOD_DIR} DESTINATION include) +if(NOT IS_SUBPROJECT OR BUILD_SHARED_LIBS) + install(TARGETS fortran_stdlib + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + ) + install(DIRECTORY ${LIB_MOD_DIR} DESTINATION include) +endif() From d547f3a879a88698c01461d05174f02c82ae46bb Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Tue, 29 Dec 2020 14:40:37 +0100 Subject: [PATCH 3/3] Export stdlib targets for dependent projects --- CMakeLists.txt | 6 +++++- src/CMakeLists.txt | 15 +++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fbe96067..cbed6ba9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,6 @@ cmake_minimum_required(VERSION 3.14.0) project(stdlib Fortran) enable_testing() -get_directory_property(IS_SUBPROJECT PARENT_DIRECTORY) include(${PROJECT_SOURCE_DIR}/cmake/stdlib.cmake) @@ -53,3 +52,8 @@ if(NOT FYPP) endif() add_subdirectory(src) + +install(EXPORT fortran_stdlib-targets + NAMESPACE fortran_stdlib:: + DESTINATION "lib/cmake/fortran_stdlib" +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6b108c332..bfdcaf7c8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -62,11 +62,10 @@ endif() add_subdirectory(tests) -if(NOT IS_SUBPROJECT OR BUILD_SHARED_LIBS) - install(TARGETS fortran_stdlib - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - ) - install(DIRECTORY ${LIB_MOD_DIR} DESTINATION include) -endif() +install(TARGETS fortran_stdlib + EXPORT fortran_stdlib-targets + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) +install(DIRECTORY ${LIB_MOD_DIR} DESTINATION include)