Modules/LibraryViewer/CMakeLists.txt
Шурупов Илья Викторович 0b308dfd7b Share picojson as an Externals target
LibraryViewer carried its own copy of picojson. Move it to Externals as an
INTERFACE target so other modules can use the same header.
2026-10-21 17:53:06 +03:00

34 lines
2 KiB
CMake

project(LibraryViewer)
### ---------------------- Externals --------------------- ###
set(BINDINGS_INCLUDE ${GLEW_INCLUDE_DIR} ${PORTAUDIO_INCLUDE_DIR})
set(BINDINGS_LIBS ${GLEW_LIB} ${ALSA_LIBRARY} ${PORTAUDIO_LIB})
### ---------------------- Static Library --------------------- ###
file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp")
file(GLOB HEADERS "./public/*.hpp" "./public/*/*.hpp" "./applications/*.hpp")
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC ./public/ ${BINDINGS_INCLUDE} ./ext/)
target_link_libraries(${PROJECT_NAME} PUBLIC Graphics Connection WidgetsApp Picojson)
target_link_libraries(${PROJECT_NAME} PUBLIC ${BINDINGS_LIBS})
file(COPY "library" DESTINATION "${CMAKE_BINARY_DIR}/${PROJECT_NAME}")
file(COPY "applications/Font.ttf" DESTINATION "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/rsc/")
### -------------------------- Applications -------------------------- ###
add_executable(libView ./applications/Entry.cpp)
target_link_libraries(libView ${PROJECT_NAME})
### -------------------------- Headless View Tests -------------------------- ###
add_executable(Test${PROJECT_NAME} ./tests/LibraryViewTests.cpp ../Widgets/tests/Main.cpp ../Widgets/tests/support/UiDriver.cpp ../Widgets/tests/support/RecordingPainter.cpp)
target_include_directories(Test${PROJECT_NAME} PRIVATE ../Widgets/tests/support)
target_link_libraries(Test${PROJECT_NAME} ${PROJECT_NAME} UnitTest++)
add_test(NAME Test${PROJECT_NAME} COMMAND Test${PROJECT_NAME})
### -------------------------- Application Integration Tests -------------------------- ###
add_executable(Test${PROJECT_NAME}App ./tests/LibraryViewerAppTests.cpp ../Widgets/tests/Main.cpp)
target_link_libraries(Test${PROJECT_NAME}App ${PROJECT_NAME} UnitTest++)
add_test(NAME Test${PROJECT_NAME}App COMMAND ${CMAKE_SOURCE_DIR}/Sketch2D/temp/run-headless-wayland.sh $<TARGET_FILE:Test${PROJECT_NAME}App> WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME})