Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use cmake-js #68

Merged
merged 6 commits into from Oct 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
64 changes: 30 additions & 34 deletions .github/workflows/build.yml
Expand Up @@ -97,28 +97,28 @@ jobs:
npm --version


- name: Build (embedded) C-SDK Phase-I (Linux)
run: |
mkdir ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
cd ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
cmake -G Ninja -DUSE_OPENSSL=on -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} ..
if: matrix.config.os == 'ubuntu-20.04'

- name: Build (embedded) C-SDK Phase-I ( Mac)
run: |
mkdir ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
cd ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
cmake -G Ninja -DUSE_OPENSSL=on -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib ..
if: |
matrix.config.os == 'macOS-latest'

- name: Build (embedded) C-SDK Phase-I (Windows)
run: |
vcpkg install openssl-windows:x64-windows
cmake -E make_directory ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
cmake -S ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c -B ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build -DUSE_OPENSSL=on -DOPENSSL_ROOT_DIR=C:\vcpkg\packages\openssl_x64-windows
cmake --build ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
if: matrix.config.os == 'windows-latest'
# - name: Build (embedded) C-SDK Phase-I (Linux)
# run: |
# mkdir ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
# cd ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
# cmake -G Ninja -DUSE_OPENSSL=on -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} ..
# if: matrix.config.os == 'ubuntu-20.04'
#
# - name: Build (embedded) C-SDK Phase-I ( Mac)
# run: |
# mkdir ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
# cd ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
# cmake -G Ninja -DUSE_OPENSSL=on -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib ..
# if: |
# matrix.config.os == 'macOS-latest'
#
# - name: Build (embedded) C-SDK Phase-I (Windows)
# run: |
# vcpkg install openssl-windows:x64-windows
# cmake -E make_directory ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
# cmake -S ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c -B ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build -DUSE_OPENSSL=on -DOPENSSL_ROOT_DIR=C:\vcpkg\packages\openssl_x64-windows
# cmake --build ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
# if: matrix.config.os == 'windows-latest'

# - name: Build (embedded) C-SDK Phase-I (Windows)
# shell: cmd
Expand All @@ -131,14 +131,14 @@ jobs:
# if: matrix.config.os == 'windows-latest'



- name: Build (embedded) C-SDK Phase-II (Linux | Mac)
run: |
cd ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
cmake --build . --target all
if: |
matrix.config.os == 'ubuntu-20.04' ||
matrix.config.os == 'macOS-latest'
#
# - name: Build (embedded) C-SDK Phase-II (Linux | Mac)
# run: |
# cd ${{ runner.workspace }}/${{ github.event.repository.name }}/deps/ziti-sdk-c/build
# cmake --build . --target all
# if: |
# matrix.config.os == 'ubuntu-20.04' ||
# matrix.config.os == 'macOS-latest'

# - name: Build (embedded) C-SDK Phase-II (Windows)
# shell: cmd
Expand Down Expand Up @@ -173,10 +173,6 @@ jobs:
run: |
node tests/hello.js

- name: Cleanup
run: |
npm run build:cleanup

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
if: env.AWS_KEY_ID != ''
Expand Down
4 changes: 2 additions & 2 deletions .gitmodules
@@ -1,4 +1,4 @@
[submodule "deps/ziti-sdk-c"]
path = deps/ziti-sdk-c
url = https://github.com/netfoundry/ziti-sdk-c
branch = master
url = https://github.com/openziti/ziti-sdk-c
branch = main
28 changes: 28 additions & 0 deletions CMakeLists.txt
@@ -0,0 +1,28 @@
cmake_minimum_required(VERSION 3.19)
cmake_policy(SET CMP0091 NEW)
cmake_policy(SET CMP0042 NEW)

project (ziti_sdk_nodejs)

# add_definitions(-DNAPI_VERSION=4)


file(GLOB SOURCE_FILES ./src/*.c ./src/.cpp)

add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC})
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_JS_INC})
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})

if(MSVC AND CMAKE_JS_NODELIB_DEF AND CMAKE_JS_NODELIB_TARGET)
# Generate node.lib
execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})
endif()

set(ZITI_BUILD_PROGRAMS OFF)
set(ZITI_BUILD_TESTS OFF)
option(USE_OPENSSL "use OpenSSL" ON)

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/deps/ziti-sdk-c)

target_link_libraries(${PROJECT_NAME} PRIVATE ziti)