From d8d67d515e62e10bc3f5ccc786b1f7c89600f3a4 Mon Sep 17 00:00:00 2001 From: Pcornat Date: Wed, 7 Jan 2026 23:25:19 +0100 Subject: [PATCH] More modern CMakeLists.txt --- CMakeLists.txt | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 876337c..b022275 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,17 +54,27 @@ elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") set(LINKER_OPTIMIZED_OPTIONS ${LINKER_OPTIMIZED_OPTIONS} -fdevirtualize-at-ltrans) endif () -add_library(${PROJECT_NAME} STATIC +add_library(${PROJECT_NAME} STATIC) +target_sources(${PROJECT_NAME} + PRIVATE src/window.cpp src/opengl_context.cpp + + PUBLIC + FILE_SET public_headers + TYPE HEADERS + BASE_DIRS include/ + FILES include/opengl_context.hpp + include/window.hpp + include/context_window.hpp + include/basic_data.hpp ) target_precompile_headers(${PROJECT_NAME} PUBLIC include/window.hpp include/basic_data.hpp include/context_window.hpp) -target_include_directories(${PROJECT_NAME} - PUBLIC $ - INTERFACE $ +target_compile_definitions(${PROJECT_NAME} + PUBLIC GLFW_INCLUDE_NONE + PRIVATE $<$,$>:_GLIBCXX_DEBUG> ) -target_compile_definitions(${PROJECT_NAME} PUBLIC GLFW_INCLUDE_NONE PRIVATE $<$,$>:_GLIBCXX_DEBUG>) target_compile_options(${PROJECT_NAME} PUBLIC ${COMPILE_FLAGS} $<$:${COMPILE_OPTIMIZED_FLAGS}>) target_link_options(${PROJECT_NAME} PUBLIC ${LINKER_OPTIONS} $<$:${LINKER_OPTIMIZED_OPTIONS}>) target_link_libraries(${PROJECT_NAME} PUBLIC $<$:PkgConfig::Jemalloc> OpenGL::GL GLEW::GLEW glfw) @@ -81,8 +91,8 @@ install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - INCLUDES DESTINATION include/windowGlfwGlLib - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/windowGlfwGlLibTargets" + INCLUDES DESTINATION include + FILE_SET public_headers DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/windowGlfwGlLib" ) install(EXPORT windowGlfwGlLibTargets @@ -96,14 +106,6 @@ configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/windowGlfwGlLibTargets ) -install(FILES - include/window.hpp - include/basic_data.hpp - include/context_window.hpp - include/opengl_context.hpp - DESTINATION include/windowGlfwGlLib -) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/windowGlfwGlLibTargetsConfig.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/windowGlfwGlLibTargets