mirror of
https://gitee.com/openharmony/third_party_libsnd
synced 2024-11-23 09:59:54 +00:00
47 lines
1.2 KiB
CMake
47 lines
1.2 KiB
CMake
# CMake implementation of AutoGen
|
|
# Copyright (C) 2017 Anonymous Maarten <anonymous.maarten@gmail.com>
|
|
|
|
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()
|