Замучился уже: у меня в отдельной поддиректории лежат файлики, которые могут быть вкомпилены в основной проект, если будут найдены определенные библиотеки. А если не будут найдены, то и вкомпиливаться ничего не будет.
Вот весь CMakeLists.txt из поддиректории:
set(IMLIB image_view_module)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} IMSOURCES)
find_package(OpenGL)
find_package(GLUT)
if(GLUT_FOUND AND OPENGL_FOUND)
add_library(image_view_module ${IMSOURCES})
target_link_libraries(${IMLIB} ${OPENGL_LIBRARIES} ${JPEG_LIBRARIES} ${GLUT_LIBRARIES} -lm -lpthread)
include_directories(${${IMLIB}_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIR} ${JPEG_INCLUDE_DIR} ${GLUT_INCLUDE_DIR})
link_directories(${${IMLIB}_LIBRARY_DIRS})
set(IMAGEVIEW_FOUND TRUE)
message("GLUT & OpenGL are found")
else()
add_definitions(-DIMAGEVIEW)
set(IMAGEVIEW_FOUND FALSE)
endif()
А в основном CMakeLists.txt я просто пр оверяю переменную IMAGEVIEW_FOUND:
if(IMAGEVIEW_FOUND)
message("found image view module")
target_link_libraries(${PROJ} ${${PROJ}_LIBRARIES} -lm ${IMLIB})
else()
message("not found image view module")
target_link_libraries(${PROJ} ${${PROJ}_LIBRARIES} -lm)
endif()
Пробовал и так: if(${IMAGEVIEW_FOUND})
(хотя это неправильно). Все равно аналогичное поведение.
Как правильно определить эту переменную, чтобы она вела себя аналогично остальным cmake'овским xx_FOUND?