initial
This commit is contained in:
Vendored
+37
@@ -0,0 +1,37 @@
|
||||
function(add_git_ref target)
|
||||
if(NOT DEFINED GIT_REV)
|
||||
set(GIT_REV "HEAD")
|
||||
endif()
|
||||
|
||||
get_property(_git_ref_created GLOBAL PROPERTY _GIT_REF_CREATED)
|
||||
if(NOT _git_ref_created)
|
||||
set_property(GLOBAL PROPERTY _GIT_REF_CREATED TRUE)
|
||||
find_package(Git)
|
||||
set_property(GLOBAL PROPERTY _GIT_FOUND "${Git_FOUND}")
|
||||
if(Git_FOUND)
|
||||
add_custom_target(git-ref
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "#pragma once" > GitRef.hpp.tmp
|
||||
COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR} log -1 "--format=namespace tracy { static inline const char* GitRef = %x22%h%x22; }" ${GIT_REV} >> GitRef.hpp.tmp || echo "namespace tracy { static inline const char* GitRef = \"unknown\"; }" >> GitRef.hpp.tmp
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different GitRef.hpp.tmp GitRef.hpp
|
||||
BYPRODUCTS GitRef.hpp GitRef.hpp.tmp
|
||||
VERBATIM
|
||||
)
|
||||
else()
|
||||
message(WARNING "git not found, using 'unknown' as git ref.")
|
||||
add_custom_command(
|
||||
OUTPUT GitRef.hpp
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "#pragma once" > GitRef.hpp
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "namespace tracy { static inline const char* GitRef = \"unknown\"; }" >> GitRef.hpp
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
get_property(_git_found GLOBAL PROPERTY _GIT_FOUND)
|
||||
if(_git_found)
|
||||
add_dependencies(${target} git-ref)
|
||||
else()
|
||||
target_sources(${target} PUBLIC GitRef.hpp)
|
||||
endif()
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user