From 89b6808ae60902523a967b9c28fc3010de38aa0b Mon Sep 17 00:00:00 2001 From: Guilherme de Massena Ladario <31376051+Guila767@users.noreply.github.com> Date: Thu, 4 Sep 2025 03:02:57 -0300 Subject: [PATCH 1/5] Refactor CI workflow for C/C++ builds and tests --- .github/workflows/c-cpp.yml | 63 +++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/c-cpp.yml diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml new file mode 100644 index 0000000..157dc29 --- /dev/null +++ b/.github/workflows/c-cpp.yml @@ -0,0 +1,63 @@ +name: C/C++ CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build-and-test: + strategy: + fail-fast: false + matrix: + os: [windows-latest] + build_type: [Release] + runs-on: ${{ matrix.os }} + env: + BUILD_TYPE: ${{ matrix.build_type }} + CTEST_OUTPUT_ON_FAILURE: 1 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Config MSVC (Windows) + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install ninja (Windows) + if: runner.os == 'Windows' + run: choco install -y ninja + + - name: Configure 'Windows' + if: runner.os == 'Windows' + run: | + cmake -S . -B build -G ninja ^ + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ^ + -DBUILD_TESTING=ON ^ + -DBUILD_TESTS=ON ^ + -DPROXY_ENABLE_LOG=ON ^ + -DPROXY_LINK_MAP=ON ^ + -DBUILD_LOADER=ON + + - name: Build + run: cmake --build build --config ${{ env.BUILD_TYPE }} -- -k 0 + + - name: Tests + working-directory: build + run: ctest -C ${{ env.BUILD_TYPE }} + + - name: Upload build & tests logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: logs-${{ matrix.os }}-${{ env.BUILD_TYPE }} + path: | + build/Testing/Temporary/LastTest.log + build/CMakeFiles/CMakeOutput.log + build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + + + From 873e2bfd4ed7dc96e90d30d9f3fb4937fa617811 Mon Sep 17 00:00:00 2001 From: Guilherme de Massena Ladario <31376051+Guila767@users.noreply.github.com> Date: Thu, 4 Sep 2025 03:18:19 -0300 Subject: [PATCH 2/5] Fix formatting in Windows configuration step --- .github/workflows/c-cpp.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 157dc29..e9f576b 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -30,15 +30,15 @@ jobs: if: runner.os == 'Windows' run: choco install -y ninja - - name: Configure 'Windows' + - name: Configure (Windows) if: runner.os == 'Windows' run: | - cmake -S . -B build -G ninja ^ - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ^ - -DBUILD_TESTING=ON ^ - -DBUILD_TESTS=ON ^ - -DPROXY_ENABLE_LOG=ON ^ - -DPROXY_LINK_MAP=ON ^ + cmake -S . -B build -G ninja ` + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ` + -DBUILD_TESTING=ON ` + -DBUILD_TESTS=ON ` + -DPROXY_ENABLE_LOG=ON ` + -DPROXY_LINK_MAP=ON ` -DBUILD_LOADER=ON - name: Build @@ -58,6 +58,3 @@ jobs: build/CMakeFiles/CMakeOutput.log build/CMakeFiles/CMakeError.log if-no-files-found: ignore - - - From 62acf1aa44bb393b95a640613fc249e1b126a726 Mon Sep 17 00:00:00 2001 From: Guilherme de Massena Ladario <31376051+Guila767@users.noreply.github.com> Date: Thu, 4 Sep 2025 03:24:28 -0300 Subject: [PATCH 3/5] Fix case sensitivity for Ninja installation command --- .github/workflows/c-cpp.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index e9f576b..daeffe2 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -33,7 +33,7 @@ jobs: - name: Configure (Windows) if: runner.os == 'Windows' run: | - cmake -S . -B build -G ninja ` + cmake -S . -B build -G Ninja ` -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ` -DBUILD_TESTING=ON ` -DBUILD_TESTS=ON ` From f3325c2b64d3859de561ad74e2d604a0611df904 Mon Sep 17 00:00:00 2001 From: Guilherme de Massena Ladario Date: Thu, 4 Sep 2025 03:33:37 -0300 Subject: [PATCH 4/5] CI resolve python deps --- .github/workflows/c-cpp.yml | 12 ++++++++++++ requirements.txt | 1 + tools/gen_def.py | 1 - 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 requirements.txt diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index daeffe2..841123f 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -30,6 +30,18 @@ jobs: if: runner.os == 'Windows' run: choco install -y ninja + - name: Setup python + uses: actions/setup-python@v4 + with: + python-version: '3.10.X' + cache: 'pip' + cache-dependency-path: '**/requirements.txt' + + - name: Install python dependencies + run: | + python -m pip install --upgrade pip setuptools wheel + pip install -r requirements.txt + - name: Configure (Windows) if: runner.os == 'Windows' run: | diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5088fdb --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +pefile \ No newline at end of file diff --git a/tools/gen_def.py b/tools/gen_def.py index 2a62984..98fbdab 100644 --- a/tools/gen_def.py +++ b/tools/gen_def.py @@ -6,7 +6,6 @@ from pathlib import Path from typing import NamedTuple, Optional, List, Literal - import pefile # --------------------------- From 66b14c80ab2bc9de916ca3233b01fba91e3cec11 Mon Sep 17 00:00:00 2001 From: Guilherme de Massena Ladario Date: Thu, 4 Sep 2025 03:40:54 -0300 Subject: [PATCH 5/5] fix MAPINFO flag for msvc build --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c99d9cd..ff7c5c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,7 +163,7 @@ target_link_options(proxy_library PRIVATE if(PROXY_LINK_MAP) if(${MSVC_LIKE}) target_link_options(proxy_library PRIVATE - "/MAP:${CMAKE_CURRENT_BINARY_DIR}/${PROXY_DLL_NAME}.map" "/MAPINFO:SECTIONS" + "/MAP:${CMAKE_CURRENT_BINARY_DIR}/${PROXY_DLL_NAME}.map" "/MAPINFO:EXPORTS" ) else() target_link_options(proxy_library PRIVATE