diff --git a/modules/git_info/git_info.cmake b/modules/git_info/git_info.cmake index e8f85a4..f499ddc 100644 --- a/modules/git_info/git_info.cmake +++ b/modules/git_info/git_info.cmake @@ -9,12 +9,20 @@ # # url_root: https://github.com/coderefinery/autocmake/raw/master/ # fetch: -# - "%(url_root)modules/git_info/git_info_sub.cmake" # - "%(url_root)modules/git_info/git_info.h.in" -# _header_location: where the Git info header file should be generated -# _header_name: the Git info header name, complete with extension (.h, .hpp, .hxx or whatever) -function(generate_git_info_header _header_location _header_name) +function(generate_git_info_header) + # _header_location: where the Git info header file should be generated + # _header_name: the Git info header name, complete with extension (.h, .hpp, .hxx or whatever) + if(${ARGC} EQUAL 2) + set(_header_location ${ARGV0}) + set(_header_name ${ARGV1}) + elseif(${ARGC} EQUAL 0) + set(_header_location ${PROJECT_BINARY_DIR}) + set(_header_name git_info.h) + else() + message(FATAL_ERROR "generate_git_info_header function accepts either two or no arguments") + endif() find_package(Git) set(_git_last_commit_hash "unknown") @@ -65,6 +73,6 @@ function(generate_git_info_header _header_location _header_name) add_custom_target( git_info - ALL DEPENDS ${PROJECT_BINARY_DIR}/git_info.h + ALL DEPENDS ${_header_location}/${_header_name} ) endfunction() diff --git a/test/fc_git_info/cmake/autocmake.yml b/test/fc_git_info/cmake/autocmake.yml index a8d32dd..af54162 100644 --- a/test/fc_git_info/cmake/autocmake.yml +++ b/test/fc_git_info/cmake/autocmake.yml @@ -5,7 +5,7 @@ modules: - source: ../../../modules/fc.cmake - default_build_paths: - source: ../../../modules/default_build_paths.cmake -- src: - - source: ../../../modules/src.cmake - git_info: - source: ../../../modules/git_info/git_info.cmake +- src: + - source: ../../../modules/src.cmake diff --git a/test/fc_git_info/src/CMakeLists.txt b/test/fc_git_info/src/CMakeLists.txt index 2080ed2..5b9ac21 100644 --- a/test/fc_git_info/src/CMakeLists.txt +++ b/test/fc_git_info/src/CMakeLists.txt @@ -1,3 +1,4 @@ +generate_git_info_header() include_directories(${PROJECT_BINARY_DIR}) add_executable(example example.F90)