From c67d12bfea30426c80727294b3333f442bd815e4 Mon Sep 17 00:00:00 2001 From: Nicolas Mellado Date: Fri, 1 Dec 2023 19:35:00 +0100 Subject: [PATCH 1/2] Add linux+mac and windows compilation workflow --- .github/workflows/cmake.yml | 38 +++++++++++++++++++++++++++++++++++ .github/workflows/msbuild.yml | 36 +++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 .github/workflows/cmake.yml create mode 100644 .github/workflows/msbuild.yml diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 0000000..c4badc1 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,38 @@ +name: CMake + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + strategy: + matrix: + os: ['windows-latest', 'ubuntu-latest', 'macos-latest'] + fail-fast: false + runs-on: ${{ matrix.os }} + + steps: + - name: Install nanogui dependencies (ubuntu) + run: sudo apt-get install cmake xorg-dev libglu1-mesa-dev + if: matrix.os == 'ubuntu-latest' + + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --parallel --config ${{env.BUILD_TYPE}} + diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml new file mode 100644 index 0000000..971e43b --- /dev/null +++ b/.github/workflows/msbuild.yml @@ -0,0 +1,36 @@ +name: MSbuild + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: seanmiddleditch/gha-setup-ninja@master + - name: Add msbuild to PATH + uses: seanmiddleditch/gha-setup-vsdevenv@master + + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - name: Configure CMake + # Configure CMake for MSbuild in a 'build' subdirectory. + # `CMAKE_BUILD_TYPE` is not required if you are using a multi-configuration generators + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: | + cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_CXX_COMPILER=cl.exe -DCMAKE_C_COMPILER=cl.exe + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --parallel --config ${{env.BUILD_TYPE}} + From ec6565df20e56d6638cb66b56e8a5d1affb094af Mon Sep 17 00:00:00 2001 From: Nicolas Mellado Date: Fri, 1 Dec 2023 21:25:58 +0100 Subject: [PATCH 2/2] [cmake] Disable nanogui examples and python wrapper --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index dcd31ad..b2381b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,8 @@ else() endif() # Add nanogui +set( NANOGUI_BUILD_EXAMPLES CACHE BOOL OFF) +set( NANOGUI_BUILD_PYTHON CACHE BOOL OFF) message("\n\n == CMAKE recursively building NanoGUI\n") add_subdirectory("external/nanogui")