1 #-----------------------------------------------------------------------------#
2 # Extract info from Git for git_versioninfo.cpp
7 set(GIT_IS_DIRTY "false")
12 # Get current git branch, result is != 0 if this is not a git repository
14 COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
15 RESULT_VARIABLE GIT_RESULT
16 OUTPUT_VARIABLE GIT_BRANCH
17 OUTPUT_STRIP_TRAILING_WHITESPACE
19 if("${GIT_RESULT}" STREQUAL "0")
21 # Extract sha1 of HEAD
23 COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
24 OUTPUT_VARIABLE GIT_SHA1
25 OUTPUT_STRIP_TRAILING_WHITESPACE
27 # Result is != 0 if worktree is dirty
29 COMMAND git diff --quiet
30 RESULT_VARIABLE GIT_RESULT
32 if(NOT "${GIT_RESULT}" STREQUAL "0")
33 set(GIT_IS_DIRTY "true")
38 #-----------------------------------------------------------------------------#
39 # Generate git_versioninfo.cpp
41 configure_file(git_versioninfo.cpp.in git_versioninfo.cpp)
46 configuration_private.h
60 libcvc4_add_sources(GENERATED git_versioninfo.cpp)
62 #-----------------------------------------------------------------------------#
63 # Generate code for debug/trace tags
65 set(gentmptags_script ${CMAKE_CURRENT_LIST_DIR}/gentmptags.sh)
66 set(gentags_script ${CMAKE_CURRENT_LIST_DIR}/gentags.sh)
67 set(genheader_script ${CMAKE_CURRENT_LIST_DIR}/genheader.sh)
69 file(GLOB_RECURSE source_files
70 ${PROJECT_SOURCE_DIR}/src/*.cpp
71 ${PROJECT_SOURCE_DIR}/src/*.cc
72 ${PROJECT_SOURCE_DIR}/src/*.h
73 ${PROJECT_SOURCE_DIR}/src/*.g)
74 string(REPLACE ";" " " source_files_list "${source_files}")
77 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Debug_tags.tmp
79 ${gentmptags_script} ${CMAKE_CURRENT_LIST_DIR} Debug ${source_files_list}
84 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Trace_tags.tmp
86 ${gentmptags_script} ${CMAKE_CURRENT_LIST_DIR} Trace ${source_files_list}
91 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Debug_tags
92 COMMAND ${gentags_script} Debug
93 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Debug_tags.tmp
97 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Trace_tags
98 COMMAND ${gentags_script} Trace
99 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Trace_tags.tmp
103 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Debug_tags.h
104 COMMAND ${genheader_script} ${CMAKE_CURRENT_LIST_DIR} Debug
105 DEPENDS mktagheaders ${CMAKE_CURRENT_BINARY_DIR}/Debug_tags
109 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Trace_tags.h
110 COMMAND ${genheader_script} ${CMAKE_CURRENT_LIST_DIR} Trace
111 DEPENDS mktagheaders ${CMAKE_CURRENT_BINARY_DIR}/Trace_tags
114 add_custom_target(gen-tags
116 ${CMAKE_CURRENT_BINARY_DIR}/Debug_tags.h
117 ${CMAKE_CURRENT_BINARY_DIR}/Trace_tags.h