diff --git a/CMakeLists.txt b/CMakeLists.txt index b02fd18..2c55663 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,12 +2,26 @@ cmake_minimum_required(VERSION 3.30) project(ds LANGUAGES CXX) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -file(GLOB_RECURSE SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc") -add_library(${PROJECT_NAME} STATIC ${SOURCES}) -target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) +include(GNUInstallDirs) +file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc") +add_library(${PROJECT_NAME} STATIC) +target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) +target_include_directories(${PROJECT_NAME} PUBLIC $ $) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20) set_property(TARGET ${PROJECT_NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION True) +install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-targets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(EXPORT ${PROJECT_NAME}-targets + FILE ${PROJECT_NAME}-config.cmake + NAMESPACE ${PROJECT_NAME}:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + file(GLOB EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/examples/*.cc") foreach(EXEC_FILE ${EXECUTABLE_SOURCES}) get_filename_component(EXEC_NAME ${EXEC_FILE} NAME_WE) diff --git a/ports/ds/portfile.cmake b/ports/ds/portfile.cmake new file mode 100644 index 0000000..b867d89 --- /dev/null +++ b/ports/ds/portfile.cmake @@ -0,0 +1,19 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO USTC-KnowledgeComputingLab/ds + REF main +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" +) + +vcpkg_cmake_build() + +vcpkg_cmake_install() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") + +vcpkg_cmake_config_fixup(PACKAGE_NAME ds CONFIG_PATH lib/cmake/ds) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") diff --git a/ports/ds/vcpkg.json b/ports/ds/vcpkg.json new file mode 100644 index 0000000..f2c68c6 --- /dev/null +++ b/ports/ds/vcpkg.json @@ -0,0 +1,8 @@ +{ + "name": "ds", + "version-string": "0.0.0", + "description": "A deductive system", + "homepage": "https://github.com/USTC-KnowledgeComputingLab/ds", + "license": "AGPL-3.0-or-later", + "dependencies": [] +}