| enable_language(C) | |
| set(CMAKE_VERBOSE_MAKEFILE TRUE) | |
| string(REPLACE "${CMAKE_START_TEMP_FILE}" "" CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}") | |
| string(REPLACE "${CMAKE_END_TEMP_FILE}" "" CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}") | |
| string(REPLACE "${CMAKE_START_TEMP_FILE}" "" CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE}") | |
| string(REPLACE "${CMAKE_END_TEMP_FILE}" "" CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE}") | |
| # INTERFACE_{COMPILE,LINK}_WRAPPERS values may themselves use | |
| # $<COMPILE_LANGUAGE:...>/$<LINK_LANGUAGE:...> generator expressions. | |
| set_property(GLOBAL PROPERTY | |
| CMAKE_COMPILE_WRAPPER_IFACE_GENEX | |
| "${CMAKE_COMMAND};-E;env;CW_IFACE_GENEX=1" | |
| ) | |
| set_property(GLOBAL PROPERTY | |
| CMAKE_LINK_WRAPPER_IFACE_GENEX | |
| "${CMAKE_COMMAND};-E;env;LW_IFACE_GENEX=1" | |
| ) | |
| add_library(iface_genex INTERFACE) | |
| set_target_properties(iface_genex PROPERTIES | |
| INTERFACE_COMPILE_WRAPPERS "$<$<COMPILE_LANGUAGE:C>:IFACE_GENEX>" | |
| INTERFACE_LINK_WRAPPERS "$<$<LINK_LANGUAGE:C>:IFACE_GENEX>" | |
| ) | |
| add_executable(main main.c) | |
| target_link_libraries(main PRIVATE iface_genex) |