enable_language(C) add_library(generatorlib STATIC generatorlib.c) add_library(generatorobj OBJECT generatorobj.c) add_library(emptyobj OBJECT empty.c) add_library(emptyobj2 OBJECT empty.c) add_executable(generator generator.c $) target_link_libraries(generator PRIVATE generatorlib) add_custom_command(OUTPUT generated.c COMMAND generator generated.c) add_executable(generated ${CMAKE_BINARY_DIR}/generated.c $ $) target_link_libraries(generated PRIVATE generatorlib) file(GENERATE OUTPUT include/genex/$/genex_config.h CONTENT "#ifndef GENEX_CONFIG_H #define GENEX_CONFIG_H #define GENEX_CONFIG_INCLUDE_DIR \"$\" #endif /* GENEX_CONFIG_H */ ") file(GENERATE OUTPUT include/intdir/$/intdir_config.h CONTENT "#ifndef INTDIR_CONFIG_H #define INTDIR_CONFIG_H #define INTDIR_CONFIG_INCLUDE_DIR \"$\" #endif /* INTDIR_CONFIG_H */ ") foreach(g generatorlib generatorobj generator generated) target_compile_definitions(${g} PRIVATE "GENEX_CONFIG_DEFINITION=\"$\"" # FIXME Get this working # "INTDIR_CONFIG_DEFINITION=\"${CMAKE_CFG_INTDIR}\"" ) target_include_directories(${g} PRIVATE "${CMAKE_BINARY_DIR}/include/genex/$" # FIXME Get this working # "${CMAKE_BINARY_DIR}/include/intdir/${CMAKE_CFG_INTDIR}" ) endforeach() include(${CMAKE_CURRENT_LIST_DIR}/Common.cmake) generate_output_files(generatorlib generatorobj emptyobj generator generated) file(APPEND "${CMAKE_BINARY_DIR}/target_files.cmake" "set(GENERATED_FILES [==[${CMAKE_BINARY_DIR}/generated.c]==])\n") set(genfiles) foreach(cfg Debug Release MinSizeRel RelWithDebInfo) list(APPEND genfiles ${CMAKE_BINARY_DIR}/include/genex/${cfg}/genex_config.h ${CMAKE_BINARY_DIR}/include/intdir/${cfg}/intdir_config.h ) endforeach() file(APPEND "${CMAKE_BINARY_DIR}/target_files.cmake" "set(CONFIG_FILES [==[${genfiles}]==])\n")