Skip to content

Commit 46cd33e

Browse files
committed
Merge branch 'main' of github.com:SCOREC/redev
2 parents 83f3bdf + 79e0d26 commit 46cd33e

File tree

2 files changed

+58
-27
lines changed

2 files changed

+58
-27
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.15.0...3.21.0)
22

3-
project(redev VERSION 4.3.0 LANGUAGES C CXX) #C is required to find MPI_C
3+
project(redev VERSION 4.3.1 LANGUAGES C CXX) #C is required to find MPI_C
44

55
include(GNUInstallDirs)
66
include(CMakePackageConfigHelpers)

cmake/CheckGit.cmake

Lines changed: 57 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -83,34 +83,65 @@ function(CheckGitVersion)
8383

8484
endfunction()
8585

86-
function(CheckGitSetup)
87-
88-
add_custom_target(AlwaysCheckGit COMMAND ${CMAKE_COMMAND}
89-
-DRUN_CHECK_GIT_VERSION=1
90-
-Dpre_configure_dir=${pre_configure_dir}
91-
-Dpost_configure_file=${post_configure_dir}
92-
-DGIT_HASH_CACHE=${GIT_HASH_CACHE}
93-
-P ${CURRENT_LIST_DIR}/CheckGit.cmake
94-
BYPRODUCTS ${post_configure_file}
86+
function(CheckInGitRepo ret)
87+
execute_process(
88+
COMMAND git rev-parse
89+
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
90+
RESULT_VARIABLE GIT_EXISTS_RESULT
9591
)
92+
if(GIT_EXISTS_RESULT EQUAL 0)
93+
set(${ret} true PARENT_SCOPE)
94+
else()
95+
set(${ret} false PARENT_SCOPE)
96+
endif()
97+
endfunction()
9698

97-
add_library(redev_git_version ${post_configure_file})
98-
target_include_directories(redev_git_version PUBLIC
99-
"$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/generated/>"
100-
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/>")
101-
add_dependencies(redev_git_version AlwaysCheckGit)
102-
103-
set(tgt_name "redev_git_version")
104-
install(TARGETS ${tgt_name} EXPORT ${tgt_name}-target
105-
RUNTIME DESTINATION bin
106-
ARCHIVE DESTINATION lib
107-
LIBRARY DESTINATION lib)
108-
install(EXPORT ${tgt_name}-target NAMESPACE ${PROJECT_NAME}::
109-
DESTINATION lib/cmake/${PROJECT_NAME})
110-
set(${PROJECT_NAME}_EXPORTED_TARGETS
111-
${${PROJECT_NAME}_EXPORTED_TARGETS} ${tgt_name} PARENT_SCOPE)
112-
113-
CheckGitVersion()
99+
function(CheckGitSetup)
100+
CheckInGitRepo(IN_GIT_REPO)
101+
if(NOT IN_GIT_REPO)
102+
message(STATUS "Not in Git Repo, version set to ${CMAKE_PROJECT_VERSION}")
103+
set(GIT_HASH ${CMAKE_PROJECT_VERSION})
104+
else()
105+
add_custom_target(AlwaysCheckGit COMMAND ${CMAKE_COMMAND}
106+
-DRUN_CHECK_GIT_VERSION=1
107+
-Dpre_configure_dir=${pre_configure_dir}
108+
-Dpost_configure_file=${post_configure_dir}
109+
-DGIT_HASH_CACHE=${GIT_HASH_CACHE}
110+
-P ${CURRENT_LIST_DIR}/CheckGit.cmake
111+
BYPRODUCTS ${post_configure_file}
112+
)
113+
endif()
114+
115+
add_library(redev_git_version ${post_configure_file})
116+
target_include_directories(redev_git_version PUBLIC
117+
"$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/generated/>"
118+
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/>")
119+
120+
if(IN_GIT_REPO)
121+
add_dependencies(redev_git_version AlwaysCheckGit)
122+
else()
123+
if (NOT EXISTS ${post_configure_dir})
124+
file(MAKE_DIRECTORY ${post_configure_dir})
125+
endif ()
126+
127+
if (NOT EXISTS ${post_configure_dir}/redev_git_version.h)
128+
file(COPY ${pre_configure_dir}/redev_git_version.h DESTINATION ${post_configure_dir})
129+
endif()
130+
configure_file(${pre_configure_file} ${post_configure_file} @ONLY)
131+
endif()
132+
133+
set(tgt_name "redev_git_version")
134+
install(TARGETS ${tgt_name} EXPORT ${tgt_name}-target
135+
RUNTIME DESTINATION bin
136+
ARCHIVE DESTINATION lib
137+
LIBRARY DESTINATION lib)
138+
install(EXPORT ${tgt_name}-target NAMESPACE ${PROJECT_NAME}::
139+
DESTINATION lib/cmake/${PROJECT_NAME})
140+
set(${PROJECT_NAME}_EXPORTED_TARGETS
141+
${${PROJECT_NAME}_EXPORTED_TARGETS} ${tgt_name} PARENT_SCOPE)
142+
if(IN_GIT_REPO)
143+
CheckGitVersion()
144+
endif()
114145
endfunction()
115146

116147
# This is used to run this function from an external cmake process.

0 commit comments

Comments
 (0)