diff --git a/package/srcsax.cmake b/package/srcsax.cmake index ee53076..3dabcc5 100644 --- a/package/srcsax.cmake +++ b/package/srcsax.cmake @@ -1,17 +1,13 @@ # SPDX-License-Identifier: GPL-3.0-only -include(FetchContent) -FetchContent_Declare(srcsax - GIT_REPOSITORY https://github.com/srcML/srcSAX.git - GIT_TAG 9d1bf2fee324e2ae50395bfcad56cca92b0edbd1 -) +set(INCLUDE_UNIT_TESTS OFF) +add_subdirectory(srcSAX-9d1bf2fee324e2ae50395bfcad56cca92b0edbd1) # Keep srcSAX's build options and directory settings local to its build. function(srcml_add_srcsax) set(INCLUDE_UNIT_TESTS OFF) set(INCLUDE_EXAMPLES OFF) set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME DEVLIBS) - FetchContent_MakeAvailable(srcsax) endfunction() srcml_add_srcsax() diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 11f54f4..7ebc7d4 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -12,6 +12,7 @@ include(macos-libarchive.cmake) find_package(LibArchive 3 REQUIRED) find_package(CURL REQUIRED) find_package(Threads REQUIRED) +find_package(CLI11 REQUIRED) # rpath needs help on macos # Should be in a preset, but needed for all builds @@ -23,23 +24,9 @@ if(APPLE) list(APPEND CMAKE_INSTALL_RPATH "/usr/local/lib") endif() -include(FetchContent) -FetchContent_Declare(cli11 - URL https://github.com/CLIUtils/CLI11/releases/download/v2.7.0/CLI11.hpp - DOWNLOAD_NO_EXTRACT TRUE -) -FetchContent_MakeAvailable(cli11) -add_library(cli11 INTERFACE IMPORTED) -target_include_directories(cli11 SYSTEM INTERFACE ${cli11_SOURCE_DIR}) - # ctpl_stl external include -include(FetchContent) -FetchContent_Declare(ctpl_stl_src - GIT_REPOSITORY https://github.com/vit-vit/CTPL.git - GIT_TAG v.0.0.2 - GIT_SHALLOW TRUE -) -FetchContent_MakeAvailable(ctpl_stl_src) +# Pick up ctpl_stl.h put into ctpl/ at the root of this project. +set(ctpl_stl_src_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../ctpl") set(MARKER_FILE "${ctpl_stl_src_SOURCE_DIR}/ctpl_stl_patched.marker") if(NOT EXISTS ${MARKER_FILE}) message(STATUS "Patching CTPL sources") @@ -60,12 +47,8 @@ add_library(ctpl_stl INTERFACE IMPORTED) target_include_directories(ctpl_stl SYSTEM INTERFACE ${ctpl_stl_src_SOURCE_DIR}) # clip cross-platform clipboard library -include(FetchContent) -FetchContent_Declare(clip - GIT_REPOSITORY https://github.com/dacap/clip.git - GIT_TAG v1.15 - GIT_SHALLOW TRUE -) +#find_package(clip REQUIRED PATHS "${CMAKE_CURRENT_SOURCE_DIR}/../../clip-1.15") +add_subdirectory(clip-1.15) # only text support set(CLIP_ENABLE_IMAGE OFF CACHE BOOL "" FORCE) set(CLIP_EXAMPLES OFF CACHE BOOL "" FORCE) @@ -74,7 +57,6 @@ set(CLIP_INSTALL OFF CACHE BOOL "" FORCE) # Scope BUILD_SHARED_LIBS to clip only so it builds statically block() set(BUILD_SHARED_LIBS OFF) - FetchContent_MakeAvailable(clip) endblock() # On Linux, clip links libxcb, which adds a runtime dependency on libxcb.so.1. @@ -104,7 +86,7 @@ endif() file(GLOB CLIENT_SOURCE *.hpp *.cpp) add_executable(srcml ${CLIENT_SOURCE}) target_include_directories(srcml BEFORE PRIVATE .) -target_link_libraries(srcml PRIVATE srcML::LibsrcML LibArchive::LibArchive CURL::libcurl Threads::Threads cli11 ctpl_stl clip) +target_link_libraries(srcml PRIVATE srcML::LibsrcML LibArchive::LibArchive CURL::libcurl Threads::Threads CLI11 ctpl_stl clip) # Put executable in bin directory set_target_properties(srcml PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) diff --git a/src/client/srcml_cli.cpp b/src/client/srcml_cli.cpp index de0dbe3..6af3bfa 100644 --- a/src/client/srcml_cli.cpp +++ b/src/client/srcml_cli.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include using namespace ::std::literals::string_view_literals; diff --git a/src/parser/CMakeLists.txt b/src/parser/CMakeLists.txt index 166c3b2..cffd89c 100644 --- a/src/parser/CMakeLists.txt +++ b/src/parser/CMakeLists.txt @@ -10,28 +10,15 @@ option(SRCML_DEBUG_PARSER "Enable parser debugging output" OFF) # TinySHA1 external include -include(FetchContent) -FetchContent_Declare(TinySHA1 - GIT_REPOSITORY https://github.com/mohaps/tinysha1 - GIT_TAG 2795aa8de91b1797defdfbff61ed93b22b5ced81 - GIT_SHALLOW TRUE -) -FetchContent_MakeAvailable(TinySHA1) -add_library(TinySHA1 INTERFACE IMPORTED) -target_include_directories(TinySHA1 INTERFACE ${tinysha1_SOURCE_DIR}) +# Just pick up TinySHA1.hpp put into this directory. find_package(LibXml2 REQUIRED) find_package(Iconv REQUIRED) find_package(Java COMPONENTS Runtime REQUIRED) # Setup ANTLR 2.7 library -include(FetchContent) -FetchContent_Declare(antlrsrc - URL https://www.antlr2.org/download/antlr-2.7.7.tar.gz - URL_HASH MD5=01cc9a2a454dd33dcd8c856ec89af090 -) -# Fetch the content using previously declared details -FetchContent_MakeAvailable(antlrsrc) +# Pick up antlr-2.7.7.tar.gz extracted in root of this project. +set(antlrsrc_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../antlr-2.7.7") # Custom marker file to check if modifications have been made set(MARKER_FILE "${antlrsrc_SOURCE_DIR}/antlr_patched.marker") # Fetch and modify only once @@ -102,7 +89,6 @@ set_target_properties(parser PROPERTIES POSITION_INDEPENDENT_CODE ON) target_include_directories(parser SYSTEM PUBLIC ${antlrsrc_SOURCE_DIR}/lib/cpp) target_include_directories(parser PRIVATE . ${CMAKE_GENERATED_SOURCE_DIR} PUBLIC . SYSTEM PUBLIC ${CMAKE_GENERATED_SOURCE_DIR}) target_link_libraries(parser PRIVATE LibXml2::LibXml2 antlr) -target_include_directories(parser PRIVATE $) if(SRCML_DEBUG_PARSER) set_source_files_properties(${CMAKE_GENERATED_SOURCE_DIR}/srcMLParser.cpp PROPERTIES COMPILE_DEFINITIONS SRCML_DEBUG_PARSER) endif()