From a416ef8b359017770e738ef2ddaeb76899f7fb76 Mon Sep 17 00:00:00 2001 From: maxirmx Date: Sun, 25 Jun 2023 19:10:36 +0300 Subject: [PATCH] Replaced(renamed) libsexp --> libsexpp --- .github/workflows/ubuntu.yml | 41 +++++++++++++++++++++++++++++++++--- .gitmodules | 6 +++--- CMakeLists.txt | 18 ++++++---------- ci/tests/deb-tests.sh | 2 -- ci/tests/pkg-tests.sh | 2 -- ci/tests/rpm-tests.sh | 2 -- src/lib/CMakeLists.txt | 19 ++++++----------- src/librekey/g23_sexp.hpp | 4 ++-- src/libsexp | 1 - src/libsexpp | 1 + src/tests/CMakeLists.txt | 2 +- 11 files changed, 57 insertions(+), 41 deletions(-) delete mode 160000 src/libsexp create mode 160000 src/libsexpp diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 51fd0c36e..e8c5b02ed 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -110,7 +110,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release . - name: Build - run: cmake --build build --config "Release" --parallel ${{ env.CORES }} + run: cmake --build build --parallel ${{ env.CORES }} - name: Test run: | @@ -145,7 +145,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release . - name: Build - run: cmake --build build --config "Release" --parallel ${{ env.CORES }} + run: cmake --build build --parallel ${{ env.CORES }} - name: Test run: | @@ -191,7 +191,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release . - name: Build - run: cmake --build build --config "Release" --parallel ${{ env.CORES }} + run: cmake --build build --parallel ${{ env.CORES }} - name: Test run: | @@ -206,6 +206,41 @@ jobs: [ ! -d "build/src/tests/googletest-build" ] [ ! -d "build/src/tests/googletest-src" ] + cmake-system-sexpp: + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, 'skip ci')" + timeout-minutes: 30 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + + - name: Install dependencies + run: | + sudo apt-get -y update + sudo apt-get -y install cmake libjson-c-dev libbotan-2-dev asciidoctor googletest + + - name: Configure + run: | + echo CORES="$(nproc --all)" >> $GITHUB_ENV + cmake -B build -DBUILD_SHARED_LIBS=ON \ + -DCRYPTO_BACKEND=botan \ + -DDOWNLOAD_GTEST=OFF \ + -DSYSTEM_SEXPP=ON \ + -DCMAKE_BUILD_TYPE=Release . + + - name: Build + run: cmake --build build --parallel ${{ env.CORES }} + + - name: Test + run: | + mkdir -p "build/Testing/Temporary" + cp "cmake/CTestCostData.txt" "build/Testing/Temporary" + export PATH="$PWD/build/src/lib:$PATH" + ctest --parallel ${{ env.CORES }} --test-dir build -C Debug --output-on-failure + package-source: runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, 'skip ci')" diff --git a/.gitmodules b/.gitmodules index 6cdbd7835..3fa14414e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "src/libsexp"] - path = src/libsexp - url = https://github.com/rnpgp/sexp.git +[submodule "src/libsexpp"] + path = src/libsexpp + url = https://github.com/rnpgp/sexpp.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cbd5227a..5310bb112 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,22 +186,16 @@ add_subdirectory(src/common) if (SYSTEM_LIBSEXP) find_package(PkgConfig) - pkg_check_modules(REQUIRED sexp>=0.8.5) + pkg_check_modules(REQUIRED sexpp>=0.8.5) else (SYSTEM_LIBSEXP) -# cannot build shared lib(dll) with MSVC for now - if (MSVC) - set(SAVED_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) - set(BUILD_SHARED_LIBS OFF) - endif (MSVC) - +# force static libsexpp + set(SAVED_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) + set(BUILD_SHARED_LIBS OFF) set(WITH_SEXP_CLI OFF) set(WITH_SEXP_TESTS OFF) set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME development) - add_subdirectory(src/libsexp EXCLUDE_FROM_ALL) - - if (MSVC) - set(BUILD_SHARED_LIBS ${SAVED_BUILD_SHARED_LIBS}) - endif (MSVC) + add_subdirectory(src/libsexpp EXCLUDE_FROM_ALL) + set(BUILD_SHARED_LIBS ${SAVED_BUILD_SHARED_LIBS}) endif (SYSTEM_LIBSEXP) add_subdirectory(src/lib) diff --git a/ci/tests/deb-tests.sh b/ci/tests/deb-tests.sh index a4dce003d..356302238 100755 --- a/ci/tests/deb-tests.sh +++ b/ci/tests/deb-tests.sh @@ -39,12 +39,10 @@ DIR_CMAKE="$INSTALL_PREFIX/lib/x86_64-linux-gnu/cmake/rnp" declare expected_libraries=( "$DIR_LIB/librnp.so.0" - "$DIR_LIB/libsexp.so.0" ) declare expected_devlibraries=( "$DIR_LIB/librnp.so" - "$DIR_LIB/libsexp.so.0" "$DIR_LIB/pkgconfig/librnp.pc" ) diff --git a/ci/tests/pkg-tests.sh b/ci/tests/pkg-tests.sh index 9f59213f6..dcc4d0147 100755 --- a/ci/tests/pkg-tests.sh +++ b/ci/tests/pkg-tests.sh @@ -39,12 +39,10 @@ DIR_CMAKE="$INSTALL_PREFIX/lib/cmake/rnp" declare expected_libraries=( "$DIR_LIB/librnp.so.0" - "$DIR_LIB/libsexp.so.0" ) declare expected_devlibraries=( "$DIR_LIB/librnp.so" - "$DIR_LIB/libsexp.so.0" "$DIR_LIB/pkgconfig/librnp.pc" ) diff --git a/ci/tests/rpm-tests.sh b/ci/tests/rpm-tests.sh index 2829f7f47..75b676e98 100755 --- a/ci/tests/rpm-tests.sh +++ b/ci/tests/rpm-tests.sh @@ -46,12 +46,10 @@ DIR_CMAKE="$INSTALL_PREFIX/lib64/cmake/rnp" declare expected_libraries=( "$DIR_LIB/librnp.so.0" - "$DIR_LIB/libsexp.so.0" ) declare expected_devlibraries=( "$DIR_LIB/librnp.so" - "$DIR_LIB/libsexp.so.0" "$DIR_LIB/pkgconfig/librnp.pc" ) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index ba81e1ccc..d21ba7b67 100755 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -342,7 +342,7 @@ elseif (CRYPTO_BACKEND_OPENSSL) target_link_libraries(librnp-obj PRIVATE OpenSSL::Crypto) endif() -target_link_libraries(librnp-obj PRIVATE sexp) +target_link_libraries(librnp-obj PRIVATE sexpp) set_target_properties(librnp-obj PROPERTIES CXX_VISIBILITY_PRESET hidden) if (TARGET BZip2::BZip2) @@ -398,7 +398,7 @@ foreach (prop LINK_LIBRARIES INTERFACE_LINK_LIBRARIES INCLUDE_DIRECTORIES INTERF get_target_property(val librnp-obj ${prop}) if (BUILD_SHARED_LIBS) set_property(TARGET librnp-static PROPERTY ${prop} ${val}) - list(REMOVE_ITEM val "$") + list(REMOVE_ITEM val "$") set_property(TARGET librnp PROPERTY ${prop} ${val}) else() set_property(TARGET librnp PROPERTY ${prop} ${val}) @@ -435,14 +435,7 @@ endif() # If a client application uses static rnp library, it still needs libsexp.a and it is installed if (BUILD_SHARED_LIBS) - if (NOT SYSTEM_LIBSEXP AND NOT MSVC) - set (SEXP_INSTALL_TARGET "sexp") - else (NOT SYSTEM_LIBSEXP AND NOT MSVC) - set (SEXP_INSTALL_TARGET "") - endif (NOT SYSTEM_LIBSEXP AND NOT MSVC) - -# both static and shared libraries -install(TARGETS librnp ${SEXP_INSTALL_TARGET} + install(TARGETS librnp EXPORT rnp-targets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" @@ -455,7 +448,7 @@ install(TARGETS librnp ${SEXP_INSTALL_TARGET} # install dll only for windows if (WIN32) - install(TARGETS librnp ${SEXP_INSTALL_TARGET} + install(TARGETS librnp RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime @@ -463,12 +456,12 @@ install(TARGETS librnp ${SEXP_INSTALL_TARGET} endif(WIN32) else(BUILD_SHARED_LIBS) # static libraries only - install(TARGETS librnp sexp + install(TARGETS librnp sexpp EXPORT rnp-targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT development -) + ) endif(BUILD_SHARED_LIBS) # install headers diff --git a/src/librekey/g23_sexp.hpp b/src/librekey/g23_sexp.hpp index b888680f5..b062c52f1 100644 --- a/src/librekey/g23_sexp.hpp +++ b/src/librekey/g23_sexp.hpp @@ -27,8 +27,8 @@ #ifndef RNP_G23_SEXP_HPP #define RNP_G23_SEXP_HPP -#include "sexp/sexp.h" -#include "sexp/ext-key-format.h" +#include "sexpp/sexp.h" +#include "sexpp/ext-key-format.h" #define SXP_MAX_DEPTH 30 diff --git a/src/libsexp b/src/libsexp deleted file mode 160000 index 47009ce30..000000000 --- a/src/libsexp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 47009ce300ddc2eabbdcd3a822cbfa1fbb5cf2b4 diff --git a/src/libsexpp b/src/libsexpp new file mode 160000 index 000000000..e265f6370 --- /dev/null +++ b/src/libsexpp @@ -0,0 +1 @@ +Subproject commit e265f6370dd750b4f23ffbfcbb477514f7c2a517 diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 56605b598..62fc2201b 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -186,7 +186,7 @@ target_link_libraries(rnp_tests PRIVATE librnp-static JSON-C::JSON-C - sexp + sexpp ${GTestMain} ) if (CRYPTO_BACKEND_LOWERCASE STREQUAL "openssl")