cpp-utilities/cmake/modules/TemplateFinder.cmake

23 lines
1.3 KiB
CMake
Raw Normal View History

2017-02-11 02:30:46 +01:00
if(NOT DEFINED TEMPLATE_FINDER_LOADED)
2016-06-09 22:57:51 +02:00
function(find_template_file FILE_NAME PROJECT_VAR_NAME OUTPUT_VAR)
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/${FILE_NAME}.in")
# check own source directory
set(${OUTPUT_VAR} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/${FILE_NAME}.in" PARENT_SCOPE)
2016-09-06 22:52:12 +02:00
message(STATUS "Using template for ${FILE_NAME} from own (${META_PROJECT_NAME}) source directory.")
2016-06-09 22:57:51 +02:00
elseif(EXISTS "${${PROJECT_VAR_NAME}_SOURCE_DIR}/cmake/templates/${FILE_NAME}.in")
# check sources of project
set(${OUTPUT_VAR} "${${PROJECT_VAR_NAME}_SOURCE_DIR}/cmake/templates/${FILE_NAME}.in" PARENT_SCOPE)
2016-09-06 22:52:12 +02:00
message(STATUS "Using template for ${FILE_NAME} from ${PROJECT_VAR_NAME} source directory.")
2016-06-09 22:57:51 +02:00
elseif(EXISTS "${${PROJECT_VAR_NAME}_CONFIG_DIRS}/templates/${FILE_NAME}.in")
# check installed version of project
set(${OUTPUT_VAR} "${${PROJECT_VAR_NAME}_CONFIG_DIRS}/templates/${FILE_NAME}.in" PARENT_SCOPE)
2016-09-06 22:52:12 +02:00
message(STATUS "Using template for ${FILE_NAME} from ${PROJECT_VAR_NAME} installation.")
2016-06-09 22:57:51 +02:00
else()
message(FATAL_ERROR "Template for ${FILE_NAME} file can not be located.")
endif()
endfunction()
2017-02-11 02:30:46 +01:00
set(TEMPLATE_FINDER_LOADED YES)
2016-06-09 22:57:51 +02:00
endif()