Initial Vectorail Core library

This commit is contained in:
2026-08-02 17:05:27 +02:00
commit d869edfaa8
15 changed files with 749 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
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
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
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
)