LibraryViewer carried its own copy of picojson. Move it to Externals as an INTERFACE target so other modules can use the same header.
34 lines
2 KiB
CMake
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})
|
|
|