cmake. Как добавлять файл только когда он есть?
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
set(PROJECT_NAME retom21)
project(${PROJECT_NAME} VERSION 0.0.1)
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/macros)
include(GlibCompileResourcesSupport)
set(RESOURCE_LIST
STRIPBLANKS glade/main.glade
)
compile_gresources(
RESOURCE_FILE
XML_OUT
TYPE EMBED_C
RESOURCES ${RESOURCE_LIST}
PREFIX /r21
)
add_custom_target(
gladeGeneratedResource
ALL
DEPENDS ${RESOURCE_FILE}
)
#add_executable(${PROJECT_NAME} main.cpp build/resources.c)
# set(sources main.cpp)
add_executable(${PROJECT_NAME} main.cpp)# ${CMAKE_CURRENT_SOURCE_DIR}/build/resources.c)
#moe
#if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/build/resources.c)
# message("use resources.c")
# list(APPEND sources build/resources.c)
# message(${sources})
#endif()
#moe end
include(../common.cmake)
find_package(PkgConfig)
pkg_check_modules(GTKMM gtkmm-3.0 REQUIRED)
target_include_directories(retom21 PRIVATE ${GTKMM_INCLUDE_DIRS})
#target_link_directories(retom21 PRIVATE ${GTKMM_LIBRARY_DIRS})
target_link_libraries(retom21 PRIVATE ${GTKMM_LIBRARIES})
Как сделать так чтобы этот файл ${CMAKE_CURRENT_SOURCE_DIR}/build/resources.c, сгенеренный из ресурсов присоединялся к проекту только если он есть? if(EXISTS ..)не работает
Ответы (1 шт):
Автор решения: Anton Kuzmich
→ Ссылка
Срабатывает такое:
set(sources main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/build/resources.c)
${CMAKE_CURRENT_SOURCE_DIR}/build/resources.c)
include(../common.cmake) # в нем add_executable(retom21 WIN32 ${sources} ${headers})#