1+ # CMakeLists.txt for CairoBasic sample on Linux
2+ # This demonstrates how to build Cairo samples using system Cairo libraries
3+
14cmake_minimum_required ( VERSION 3.10 FATAL_ERROR )
25set ( CMAKE_VERBOSE_MAKEFILE ON )
36
@@ -8,7 +11,41 @@ get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE )
811
912include ( "${CINDER_PATH} /proj/cmake/modules/cinderMakeApp.cmake" )
1013
11- ci_make_app(
12- SOURCES ${APP_PATH} /src/CairoBasicApp.cpp
13- CINDER_PATH ${CINDER_PATH}
14- )
14+ # Linux-specific Cairo handling
15+ if ( CMAKE_SYSTEM_NAME STREQUAL "Linux" )
16+ # Add our custom FindCairo module to the module path
17+ list (APPEND CMAKE_MODULE_PATH "${CINDER_PATH} /proj/cmake/modules" )
18+
19+ # Find system Cairo
20+ find_package ( Cairo REQUIRED )
21+
22+ # Include Cinder Cairo wrapper source
23+ set ( CAIRO_SOURCES
24+ ${CINDER_PATH} /blocks/Cairo/src/Cairo.cpp
25+ )
26+
27+ set ( CAIRO_INCLUDES
28+ ${CINDER_PATH} /blocks/Cairo/include
29+ ${CAIRO_INCLUDE_DIRS}
30+ )
31+
32+ ci_make_app(
33+ SOURCES ${APP_PATH} /src/CairoBasicApp.cpp ${CAIRO_SOURCES}
34+ INCLUDES ${CAIRO_INCLUDES}
35+ LIBRARIES ${CAIRO_LIBRARIES}
36+ CINDER_PATH ${CINDER_PATH}
37+ )
38+
39+ # Link Cairo libraries and set include directories
40+ target_link_libraries ( ${PROJECT_NAME} PRIVATE ${CAIRO_LIBRARIES} )
41+ target_include_directories ( ${PROJECT_NAME} PRIVATE ${CAIRO_INCLUDE_DIRS} )
42+
43+
44+ else ()
45+ # Use standard CinderBlock for other platforms
46+ ci_make_app(
47+ SOURCES ${APP_PATH} /src/CairoBasicApp.cpp
48+ BLOCKS Cairo
49+ CINDER_PATH ${CINDER_PATH}
50+ )
51+ endif ()
0 commit comments