История изменений
Исправление KivApple, (текущая версия) :
Я придумал вот такую штуку (я передаю аргументы препроцессора своему скрипту через --cpp-arg=XXX):
foreach(BUILD_TYPE ${CMAKE_BUILD_TYPE} ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${BUILD_TYPE}" BUILD_TYPE)
set(TMP ${CMAKE_C_FLAGS_${BUILD_TYPE}})
separate_arguments(TMP)
list(TRANSFORM TMP PREPEND --cpp-arg=)
list(APPEND CUR_CONFIG_BUILD_FLAGS $<$<CONFIG:${BUILD_TYPE}>:${TMP}>)
endforeach()
add_custom_command(
OUTPUT ...
COMMAND "${Python3_EXECUTABLE}" "..."
--cpp-path="${CMAKE_C_COMPILER}"
--cpp-arg=-E
${CUR_CONFIG_BUILD_FLAGS}
...
)
Но она не работает, если аргумента больше одного:
ninja: error: build.ninja:188: bad $-escape (literal $ must be written as $$)
Исходная версия KivApple, :
Я придумал вот такую штуку (я передаю аргументы препроцессора своему скрипту через --cpp-arg=XXX):
foreach(BUILD_TYPE "${CMAKE_BUILD_TYPE}" ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${BUILD_TYPE}" BUILD_TYPE)
set(TMP ${CMAKE_C_FLAGS_${BUILD_TYPE}})
separate_arguments(TMP)
list(TRANSFORM TMP PREPEND --cpp-arg=)
list(APPEND CUR_CONFIG_BUILD_FLAGS $<$<CONFIG:${BUILD_TYPE}>:${TMP}>)
endforeach()
add_custom_command(
OUTPUT ...
COMMAND "${Python3_EXECUTABLE}" "..."
--cpp-path="${CMAKE_C_COMPILER}"
--cpp-arg=-E
${CUR_CONFIG_BUILD_FLAGS}
...
)
Но она не работает, если аргумента больше одного:
ninja: error: build.ninja:188: bad $-escape (literal $ must be written as $$)