diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-06-15 14:19:35 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-06-16 22:22:10 +0800 |
| commit | 82b6612418908654a61b7947550b796ce4ed57d6 (patch) | |
| tree | 436dcba871bfad2dcc2bc90a51e59fde86dc33f8 /CMakeLists.txt | |
| parent | 08688972ae56b474e2e2fd954c5caaeb1233a1be (diff) | |
fix(cmake): linking
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 727108f..5937aa0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.19) project( - libsock + sock VERSION 1.0.0 DESCRIPTION "Minimal C++ socket library") @@ -36,17 +36,23 @@ else() message(STATUS "Configuring libsock in Release") endif() -file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp" "include/*.hpp") +# Separate source files and headers +file(GLOB_RECURSE PRIVATE_SOURCES CONFIGURE_DEPENDS "src/*.cpp") +file(GLOB_RECURSE PRIVATE_HEADERS CONFIGURE_DEPENDS "src/*.hpp") file(GLOB_RECURSE PUBLIC_HEADERS CONFIGURE_DEPENDS "include/*.hpp") +# Create list of all source files (private sources + public headers) +set(ALL_SOURCES ${PRIVATE_SOURCES} ${PUBLIC_HEADERS}) + find_package(PkgConfig REQUIRED) -add_library(libsock SHARED ${SRCFILES}) +add_library(sock SHARED ${ALL_SOURCES}) target_include_directories( - libsock + sock PUBLIC "./include" - PRIVATE "./src") -set_target_properties(libsock PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1) + PRIVATE "./src" + PRIVATE "./src/misc") # Add this so FileDescriptor.hpp can be found +set_target_properties(sock PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1) # tests add_custom_target(tests) # @@ -61,7 +67,9 @@ set_target_properties(libsock PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1) # libsock_connection "connection") add_dependencies(tests libsock_connection) # # Installation -install(TARGETS libsock) -install(DIRECTORY "include/libsock" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(TARGETS sock) +install(DIRECTORY "include/libsock" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PATTERN "misc" EXCLUDE) install(FILES ${CMAKE_BINARY_DIR}/libsock.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) |
