diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e26ab3dd..88f05ff5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,7 +59,7 @@ jobs: make -j3 wallet cryptonote_protocol cd ../../../../ - - name: Build monero-cpp + - name: Build monero-cpp shared library run: | mkdir -p build cd build @@ -68,12 +68,28 @@ jobs: make -j3 cd .. - - name: Upload artifacts + - name: Upload monero-cpp shared library uses: actions/upload-artifact@v7 with: name: libmonero-cpp-linux-amd64 path: build/libmonero-cpp.so + - name: Build monero-cpp static library + run: | + rm -rf build + mkdir -p build + cd build + cmake -DSTATIC=ON .. + cmake --build . + make -j3 + cd .. + + - name: Upload monero-cpp static library + uses: actions/upload-artifact@v7 + with: + name: libmonero-cpp-linux-amd64-static + path: build/libmonero-cpp.a + windows: name: windows runs-on: windows-latest @@ -140,7 +156,7 @@ jobs: ../../ make wallet cryptonote_protocol - - name: Build monero-cpp + - name: Build monero-cpp shared library shell: msys2 {0} run: | mkdir -p build @@ -149,7 +165,7 @@ jobs: cmake --build . cd .. - - name: Upload artifacts + - name: Upload monero-cpp shared library uses: actions/upload-artifact@v7 with: name: libmonero-cpp-win-x64 @@ -157,6 +173,21 @@ jobs: build/libmonero-cpp.dll build/libmonero-cpp.dll.a + - name: Build monero-cpp static library + run: | + rm -rf build + mkdir -p build + cd build + cmake -DSTATIC=ON .. + cmake --build . + cd .. + + - name: Upload monero-cpp static library + uses: actions/upload-artifact@v7 + with: + name: libmonero-cpp-win-x64-static + path: build/libmonero-cpp.a + mac-os: name: ${{ matrix.os }} runs-on: ${{ matrix.os }} @@ -187,7 +218,7 @@ jobs: make -j3 wallet cryptonote_protocol cd ../../../../ - - name: Build monero-cpp + - name: Build monero-cpp shared library run: | mkdir -p build cd build @@ -196,8 +227,24 @@ jobs: make -j3 cd .. - - name: Upload artifacts + - name: Upload monero-cpp shared library uses: actions/upload-artifact@v7 with: name: libmonero-cpp-${{ matrix.os }} path: build/libmonero-cpp.dylib + + - name: Build monero-cpp static library + run: | + rm -rf build + mkdir -p build + cd build + cmake -DSTATIC=ON .. + cmake --build . + make -j3 + cd .. + + - name: Upload monero-cpp static library + uses: actions/upload-artifact@v7 + with: + name: libmonero-cpp-${{ matrix.os }}-archive + path: build/libmonero-cpp.a diff --git a/CMakeLists.txt b/CMakeLists.txt index 06e3eaa1..25969bf5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,7 @@ endif() project(MoneroCppLibrary) option(BUILD_LIBRARY "Build monero-cpp library" ON) +option(STATIC "Build monero-cpp static library" OFF) option(BUILD_SAMPLE "Build c++ sample code" OFF) option(BUILD_SCRATCHPAD "Build c++ scratchpad" OFF) option(BUILD_TESTS "Builc c++ tests" OFF) @@ -297,7 +298,13 @@ set( ) if (BUILD_LIBRARY) - add_library(monero-cpp SHARED ${LIBRARY_SRC_FILES}) + if (STATIC) + message(STATUS "Building static monero-cpp library") + add_library(monero-cpp STATIC ${LIBRARY_SRC_FILES}) + else() + message(STATUS "Building shared monero-cpp library") + add_library(monero-cpp SHARED ${LIBRARY_SRC_FILES}) + endif() target_include_directories(monero-cpp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include