| 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_OBJECTS:generatorobj>) |
| 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_OBJECTS:generatorobj> $<TARGET_OBJECTS:emptyobj>) |
| target_link_libraries(generated PRIVATE generatorlib) |
| |
| file(GENERATE OUTPUT include/genex/$<CONFIG>/genex_config.h CONTENT |
| "#ifndef GENEX_CONFIG_H |
| #define GENEX_CONFIG_H |
| |
| #define GENEX_CONFIG_INCLUDE_DIR \"$<CONFIG>\" |
| |
| #endif /* GENEX_CONFIG_H */ |
| ") |
| file(GENERATE OUTPUT include/intdir/$<CONFIG>/intdir_config.h CONTENT |
| "#ifndef INTDIR_CONFIG_H |
| #define INTDIR_CONFIG_H |
| |
| #define INTDIR_CONFIG_INCLUDE_DIR \"$<CONFIG>\" |
| |
| #endif /* INTDIR_CONFIG_H */ |
| ") |
| |
| foreach(g generatorlib generatorobj generator generated) |
| target_compile_definitions(${g} PRIVATE |
| "GENEX_CONFIG_DEFINITION=\"$<CONFIG>\"" |
| # FIXME Get this working |
| # "INTDIR_CONFIG_DEFINITION=\"${CMAKE_CFG_INTDIR}\"" |
| ) |
| target_include_directories(${g} PRIVATE |
| "${CMAKE_BINARY_DIR}/include/genex/$<CONFIG>" |
| # 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") |