install procedure and exporting targets
This commit is contained in:
parent
5f45e1ab25
commit
cfebea3b74
2 changed files with 45 additions and 0 deletions
|
@ -1,6 +1,8 @@
|
||||||
cmake_minimum_required(VERSION 4.0)
|
cmake_minimum_required(VERSION 4.0)
|
||||||
project(WindowGlfwGlLib CXX C)
|
project(WindowGlfwGlLib CXX C)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
include(CheckIPOSupported)
|
include(CheckIPOSupported)
|
||||||
check_ipo_supported(RESULT IS_IPO_SUPPORTED OUTPUT IPO_OUTPUT_VERBOSE)
|
check_ipo_supported(RESULT IS_IPO_SUPPORTED OUTPUT IPO_OUTPUT_VERBOSE)
|
||||||
|
|
||||||
|
@ -54,6 +56,10 @@ endif ()
|
||||||
|
|
||||||
add_library(${PROJECT_NAME} SHARED window.cpp window.hpp basic_data.hpp)
|
add_library(${PROJECT_NAME} SHARED window.cpp window.hpp basic_data.hpp)
|
||||||
target_precompile_headers(${PROJECT_NAME} PUBLIC window.hpp basic_data.hpp)
|
target_precompile_headers(${PROJECT_NAME} PUBLIC window.hpp basic_data.hpp)
|
||||||
|
target_include_directories(${PROJECT_NAME}
|
||||||
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||||
|
INTERFACE $<INSTALL_INTERFACE:include/windowGlfwGlLib>
|
||||||
|
)
|
||||||
target_compile_definitions(${PROJECT_NAME} PUBLIC GLFW_INCLUDE_NONE PRIVATE $<$<AND:$<CONFIG:Debug>,$<CXX_COMPILER_ID:GNU>>:_GLIBCXX_DEBUG>)
|
target_compile_definitions(${PROJECT_NAME} PUBLIC GLFW_INCLUDE_NONE PRIVATE $<$<AND:$<CONFIG:Debug>,$<CXX_COMPILER_ID:GNU>>:_GLIBCXX_DEBUG>)
|
||||||
target_compile_options(${PROJECT_NAME} PUBLIC ${COMPILE_FLAGS} $<$<CONFIG:Release>:${COMPILE_OPTIMIZED_FLAGS}>)
|
target_compile_options(${PROJECT_NAME} PUBLIC ${COMPILE_FLAGS} $<$<CONFIG:Release>:${COMPILE_OPTIMIZED_FLAGS}>)
|
||||||
target_link_options(${PROJECT_NAME} PUBLIC ${LINKER_OPTIONS} $<$<CONFIG:Release>:${LINKER_OPTIMIZED_OPTIONS}>)
|
target_link_options(${PROJECT_NAME} PUBLIC ${LINKER_OPTIONS} $<$<CONFIG:Release>:${LINKER_OPTIMIZED_OPTIONS}>)
|
||||||
|
@ -65,3 +71,30 @@ if (IS_IPO_SUPPORTED)
|
||||||
else ()
|
else ()
|
||||||
message(WARNING "IPO is not supported: ${IPO_OUTPUT_VERBOSE}")
|
message(WARNING "IPO is not supported: ${IPO_OUTPUT_VERBOSE}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
install(TARGETS ${PROJECT_NAME}
|
||||||
|
EXPORT windowGlfwGlLibTargets
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
INCLUDES DESTINATION include
|
||||||
|
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/windowGlfwGlLibTargets"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(EXPORT windowGlfwGlLibTargets
|
||||||
|
FILE windowGlfwGlLibTargets.cmake
|
||||||
|
NAMESPACE windowGlfwGlLibTargets::
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/windowGlfwGlLibTargets
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/windowGlfwGlLibTargetsConfig.cmake"
|
||||||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/windowGlfwGlLibTargets
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES window.hpp basic_data.hpp DESTINATION include)
|
||||||
|
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/windowGlfwGlLibTargetsConfig.cmake"
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/windowGlfwGlLibTargets
|
||||||
|
)
|
||||||
|
|
12
Config.cmake.in
Normal file
12
Config.cmake.in
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/windowGlfwGlLibTargets.cmake")
|
||||||
|
include(CMakeFindDependencyMacro)
|
||||||
|
find_dependency(OpenGL REQUIRED)
|
||||||
|
find_dependency(GLEW REQUIRED)
|
||||||
|
find_dependency(glfw3 REQUIRED)
|
||||||
|
find_dependency(PkgConfig REQUIRED)
|
||||||
|
|
||||||
|
pkg_check_modules(Jemalloc REQUIRED IMPORTED_TARGET GLOBAL jemalloc)
|
||||||
|
|
||||||
|
check_required_components(windowGlfwGlLib)
|
Loading…
Add table
Add a link
Reference in a new issue