Add stuff for cmake find_package
- Add build* to gitignore - Fix year in license file - other changes are result of clang-format
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Set Project
|
||||
project(palladium LANGUAGES C CXX VERSION 0.6.0)
|
||||
|
||||
@@ -10,6 +12,9 @@ include(cmake/palladium.cmake)
|
||||
option(PD_BUILD_TESTS "Sets if TestApp and TestBench get build" OFF)
|
||||
option(PD_BUILD_SHARED "Build Shared Library" OFF)
|
||||
option(PD_BUILD_TOOLS "Build Palladium Tools" OFF)
|
||||
option(PD_BUILD_DESKTOP "Build Desktop Backend" OFF)
|
||||
option(PD_BUILD_3DS "Build 3ds Backend" OFF)
|
||||
option(PD_BUNDLE_GLFW "Bundle GLFW in install" OFF)
|
||||
|
||||
if(${PD_BUILD_TOOLS})
|
||||
add_subdirectory(tools)
|
||||
@@ -73,7 +78,13 @@ else()
|
||||
target_compile_definitions(palladium PUBLIC -DPD_BUILD_STATIC)
|
||||
endif()
|
||||
|
||||
target_include_directories(palladium PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
add_library(palladium::palladium ALIAS palladium)
|
||||
|
||||
target_include_directories(palladium
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "Nintendo3DS")
|
||||
target_compile_options(palladium PRIVATE
|
||||
@@ -88,8 +99,47 @@ target_compile_options(palladium PRIVATE
|
||||
$<$<CONFIG:Release>:-O3>
|
||||
)
|
||||
|
||||
install(DIRECTORY include DESTINATION ".")
|
||||
install(TARGETS palladium)
|
||||
if(PD_BUILD_DESKTOP AND NOT PD_BUILD_3DS)
|
||||
add_subdirectory(backends/desktop)
|
||||
endif()
|
||||
if(PD_BUILD_3DS AND NOT PD_BUILD_DESKTOP)
|
||||
add_subdirectory(backends/3ds)
|
||||
endif()
|
||||
|
||||
install(TARGETS palladium
|
||||
EXPORT palladiumTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
install(DIRECTORY include/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
)
|
||||
install(EXPORT palladiumTargets
|
||||
FILE palladiumTargets.cmake
|
||||
NAMESPACE palladium::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/palladium
|
||||
)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
configure_package_config_file(
|
||||
cmake/palladiumConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/palladiumConfig.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/palladium
|
||||
)
|
||||
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/palladiumConfigVersion.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/palladiumConfig.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/palladiumConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/palladium
|
||||
)
|
||||
|
||||
|
||||
find_program(CLANG_FORMAT clang-format)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user