[CMake] EXECUTE_PROCESS or ADD_CUSTOM_COMMAND?
Brandon J. Van Every
bvanevery at gmail.com
Tue Jul 25 16:21:18 EDT 2006
fuchsrich at se-core.net wrote:
> I need to compile a code generator, run the code generator, then compile the
> code that the code generator produces. Do I need to complie the generator,
> then use the EXECUTE_PROCESS command to run it, then have the generated code
> compiled,
No.
> or should I use the ADD_CUSTOM_COMMAND somehow?
>
Yes. Note further that consumers using the generator will need
GET_TARGET_PROPERTY. For instance, you can look at a snippet of my
Chicken Scheme bootstrap below. Note also, this problem is in the FAQ.
The FAQ is worth checking a few times when one is learning CMake,
although it is far from exhaustive on various problems.
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/nsample.c
MAIN_DEPENDENCY nsample.scm
COMMAND ${CURRENT_CHICKEN} ${Chicken_SOURCE_DIR}/nsample.scm
-output-file ${CMAKE_CURRENT_BINARY_DIR}/nsample.c -explicit-use -uses
library -uses eval ${CHICKEN_FLAGS}
COMMENT "Compiling ${Chicken_SOURCE_DIR}/nsample.scm to
${CMAKE_CURRENT_BINARY_DIR}/nsample.c"
)
ADD_EXECUTABLE(nsample ${CMAKE_CURRENT_BINARY_DIR}/nsample.c)
SET_TARGET_PROPERTIES(nsample PROPERTIES COMPILE_FLAGS "${STATIC_FLAGS}")
TARGET_LINK_LIBRARIES(nsample libchicken-static)
ADD_DEPENDENCIES(nsample chicken-boot)
GET_TARGET_PROPERTY(NSAMPLE_EXE nsample LOCATION)
ADD_CUSTOM_TARGET(stack-size
COMMAND ${CMAKE_COMMAND}
-DChicken_SOURCE_DIR=${Chicken_SOURCE_DIR}
-DNSAMPLE_EXE=${NSAMPLE_EXE}
-DDEFAULT_TARGET_STACK_SIZE=${DEFAULT_TARGET_STACK_SIZE}
-P ${Chicken_SOURCE_DIR}/stack-size.cmake
)
ADD_DEPENDENCIES(stack-size nsample)
Cheers,
Brandon Van Every
More information about the CMake
mailing list