12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # CMake implementation of AutoGen
- # Copyright (C) 2017 Anonymous Maarten <[email protected]>
- set(AUTOGEN_SCRIPT "${CMAKE_MODULE_PATH}/CMakeAutoGenScript.cmake")
- function(lsf_autogen DIR_REL NAME_WE)
- set(EXTS ${ARGN})
- set(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/${DIR_REL}/${NAME_WE}.def")
- set(OUTPUTS)
- foreach(EXT ${EXTS})
- list(APPEND OUTPUTS "${NAME_WE}.${EXT}")
- endforeach()
- add_autogen_target("${INPUT}" "${CMAKE_CURRENT_BINARY_DIR}/${DIR_REL}" ${OUTPUTS})
- endfunction()
- function(add_autogen_target INPUT OUTPUTDIR)
- set(OUTPUTFILES "${ARGN}")
- if (OUTPUTDIR)
- set(PREFIX "${OUTPUTDIR}/")
- else()
- set(PREFIX "")
- endif()
- set(ARTIFACTS)
- foreach(OUTPUTFILE ${OUTPUTFILES})
- list(APPEND ARTIFACTS "${PREFIX}${OUTPUTFILE}")
- endforeach()
- set(EXTRA_ARGS)
- if (AUTOGEN_DEBUG)
- list(APPEND EXTRA_ARGS "-DDEBUG=1")
- endif()
- if (OUTPUTDIR)
- list(APPEND EXTRA_ARGS "-DOUTPUTDIR=${OUTPUTDIR}")
- endif()
- add_custom_command(
- OUTPUT ${ARTIFACTS}
- COMMAND ${CMAKE_COMMAND} "-DDEFINITION=${INPUT}" ${EXTRA_ARGS} -P "${AUTOGEN_SCRIPT}"
- MAIN_DEPENDENCY "${INPUT}"
- DEPENDS "${AUTOGEN_SCRIPT}"
- COMMENT "CMakeAutoGen: generating ${OUTPUTFILES}"
- WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
- endfunction()
|