cmake_minimum_required(VERSION 3.20) project(vectorail-core VERSION 0.1.0 LANGUAGES CXX) include(GNUInstallDirs) include(CMakePackageConfigHelpers) find_package(OpenGL REQUIRED) find_package(PNG REQUIRED) find_package(SDL3 CONFIG REQUIRED) find_package(glm CONFIG REQUIRED) add_library(vectorail-core src/DdsTexture.cpp src/PngTexture.cpp src/Shader.cpp src/Spline.cpp src/gl_loader.cpp ) add_library(Vectorail::Core ALIAS vectorail-core) target_compile_features(vectorail-core PUBLIC cxx_std_23) target_include_directories(vectorail-core PUBLIC $ $ ) target_link_libraries(vectorail-core PUBLIC SDL3::SDL3 OpenGL::GL PNG::PNG glm::glm ) set_target_properties(vectorail-core PROPERTIES EXPORT_NAME Core VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ) install(TARGETS vectorail-core EXPORT VectorailCoreTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(EXPORT VectorailCoreTargets FILE VectorailCoreTargets.cmake NAMESPACE Vectorail:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/VectorailCore ) configure_package_config_file( cmake/VectorailCoreConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/VectorailCoreConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/VectorailCore ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/VectorailCoreConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/VectorailCoreConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/VectorailCoreConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/VectorailCore )