From fceb37d0e6832c5e2cc533220e03480ab50b335b Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Fri, 18 Jul 2025 11:40:17 -0400 Subject: [PATCH 1/6] Fix a github actions version c++20 standalone issue by not building that part of the matrix basically --- .github/workflows/pullreq.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pullreq.yml b/.github/workflows/pullreq.yml index 3602ffd0..13711430 100644 --- a/.github/workflows/pullreq.yml +++ b/.github/workflows/pullreq.yml @@ -60,18 +60,21 @@ jobs: install_ninja: false run_aptget: false name: Windows 64bit MSVC + build_standalone: TRUE - os: windows-latest cmakeargs: -A x64 -DCLAP_WRAPPER_CXX_STANDARD=20 install_ninja: false run_aptget: false name: Windows 64bit C++20 MSVC + build_standalone: FALSE - os: windows-latest cmakeargs: -GNinja -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc install_ninja: true run_aptget: false name: Windows gcc/minGW + build_standalone: TRUE #- os: windows-latest # cmakeargs: -GNinja -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang @@ -84,54 +87,63 @@ jobs: install_ninja: false run_aptget: true name: Linux gcc12 + build_standalone: TRUE - os: ubuntu-latest cmakeargs: -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_C_COMPILER=gcc-13 install_ninja: false run_aptget: true name: Linux gcc13 + build_standalone: TRUE - os: ubuntu-24.04 cmakeargs: -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_C_COMPILER=gcc-14 install_ninja: false run_aptget: true name: Linux ub-24 gcc14 + build_standalone: TRUE - os: ubuntu-latest cmakeargs: -DCLAP_WRAPPER_CXX_STANDARD=20 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_COMPILER=gcc-12 install_ninja: false run_aptget: true name: Linux gcc12 C++20 + build_standalone: TRUE - os: ubuntu-latest cmakeargs: -DCLAP_WRAPPER_CXX_STANDARD=23 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_COMPILER=gcc-12 install_ninja: false run_aptget: true name: Linux gcc12 C++23 + build_standalone: TRUE - os: macos-latest cmakeargs: -GNinja install_ninja: true run_aptget: false name: MacOS Ninja + build_standalone: TRUE - os: macos-latest cmakeargs: -G"Xcode" install_ninja: false run_aptget: false name: MacOS Xcode + build_standalone: TRUE - os: macos-latest cmakeargs: -G"Ninja Multi-Config" -DCLAP_WRAPPER_CXX_STANDARD=20 install_ninja: true run_aptget: false name: MacOS Ninja Multi C++20 + build_standalone: TRUE - os: macos-latest cmakeargs: -G"Unix Makefiles" install_ninja: false run_aptget: false name: MacOS Unix Makefiles + build_standalone: TRUE steps: - name: Checkout code @@ -153,7 +165,7 @@ jobs: - name: Build project run: | - cmake -S . -B ./build ${{ matrix.cmakeargs }} -DCMAKE_BUILD_TYPE=Debug -DCLAP_WRAPPER_DOWNLOAD_DEPENDENCIES=TRUE -DCLAP_WRAPPER_BUILD_AUV2=TRUE -DCLAP_WRAPPER_BUILD_STANDALONE=TRUE -DCLAP_WRAPPER_OUTPUT_NAME=downloadplug + cmake -S . -B ./build ${{ matrix.cmakeargs }} -DCMAKE_BUILD_TYPE=Debug -DCLAP_WRAPPER_DOWNLOAD_DEPENDENCIES=TRUE -DCLAP_WRAPPER_BUILD_AUV2=TRUE -DCLAP_WRAPPER_BUILD_STANDALONE=${{ matrix.build_standalone }} -DCLAP_WRAPPER_OUTPUT_NAME=downloadplug cmake --build ./build --config Debug - name: Show Build Results From db55f3dabe3b4e232c10cfb1213577656db670c1 Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Fri, 18 Jul 2025 11:46:46 -0400 Subject: [PATCH 2/6] More attempt --- .github/workflows/pullreq.yml | 2 +- cmake/shared_prologue.cmake | 7 +++++-- cmake/wrap_standalone.cmake | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pullreq.yml b/.github/workflows/pullreq.yml index 13711430..a9c1af48 100644 --- a/.github/workflows/pullreq.yml +++ b/.github/workflows/pullreq.yml @@ -67,7 +67,7 @@ jobs: install_ninja: false run_aptget: false name: Windows 64bit C++20 MSVC - build_standalone: FALSE + build_standalone: TRUE - os: windows-latest cmakeargs: -GNinja -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc diff --git a/cmake/shared_prologue.cmake b/cmake/shared_prologue.cmake index f314e34d..ee610bc4 100644 --- a/cmake/shared_prologue.cmake +++ b/cmake/shared_prologue.cmake @@ -52,7 +52,9 @@ target_compile_options(clap-wrapper-compile-options-public INTERFACE -D${CLAP_WR if (APPLE) target_link_libraries(clap-wrapper-compile-options-public INTERFACE macos_filesystem_support) endif() -if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" AND (NOT (CMAKE_CXX_COMPILER_ID MATCHES "ClangCL"))) + message(STATUS "clap-wrapper: using gcc/llvm-clang compile options") + target_compile_options(clap-wrapper-compile-options INTERFACE -Wall -Wextra -Wno-unused-parameter -Wpedantic) if (WIN32) # CLang cant do werror on linux thanks to vst3 sdk @@ -90,7 +92,8 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") endif() -if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") +if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR CMAKE_CXX_COMPIPLER_ID MATCHES "ClangCL") + message(STATUS "clap-wrapper: using MSVC/CLangCL compile options") target_compile_options(clap-wrapper-compile-options-public INTERFACE /utf-8 /Zc:__cplusplus) if ("${CMAKE_CXX_STANDARD}" GREATER_EQUAL 20) message(STATUS "clap-wrapper: Turning off char8_t c++20 changes") diff --git a/cmake/wrap_standalone.cmake b/cmake/wrap_standalone.cmake index 08635941..deed5001 100644 --- a/cmake/wrap_standalone.cmake +++ b/cmake/wrap_standalone.cmake @@ -158,7 +158,7 @@ function(target_add_standalone_wrapper) ) endif() - target_link_libraries(${SA_TARGET} PRIVATE base-sdk-wil ComCtl32.Lib) + target_link_libraries(${SA_TARGET} PRIVATE base-sdk-wil ComCtl32.Lib RuntimeObject.Lib) elseif(UNIX) target_sources(${SA_TARGET} PRIVATE From 52b6fae435703ad9db50de9095c1b07ef2d0f92e Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Fri, 18 Jul 2025 11:47:52 -0400 Subject: [PATCH 3/6] try and fix --- .github/workflows/pullreq.yml | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/.github/workflows/pullreq.yml b/.github/workflows/pullreq.yml index a9c1af48..3602ffd0 100644 --- a/.github/workflows/pullreq.yml +++ b/.github/workflows/pullreq.yml @@ -60,21 +60,18 @@ jobs: install_ninja: false run_aptget: false name: Windows 64bit MSVC - build_standalone: TRUE - os: windows-latest cmakeargs: -A x64 -DCLAP_WRAPPER_CXX_STANDARD=20 install_ninja: false run_aptget: false name: Windows 64bit C++20 MSVC - build_standalone: TRUE - os: windows-latest cmakeargs: -GNinja -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc install_ninja: true run_aptget: false name: Windows gcc/minGW - build_standalone: TRUE #- os: windows-latest # cmakeargs: -GNinja -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang @@ -87,63 +84,54 @@ jobs: install_ninja: false run_aptget: true name: Linux gcc12 - build_standalone: TRUE - os: ubuntu-latest cmakeargs: -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_C_COMPILER=gcc-13 install_ninja: false run_aptget: true name: Linux gcc13 - build_standalone: TRUE - os: ubuntu-24.04 cmakeargs: -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_C_COMPILER=gcc-14 install_ninja: false run_aptget: true name: Linux ub-24 gcc14 - build_standalone: TRUE - os: ubuntu-latest cmakeargs: -DCLAP_WRAPPER_CXX_STANDARD=20 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_COMPILER=gcc-12 install_ninja: false run_aptget: true name: Linux gcc12 C++20 - build_standalone: TRUE - os: ubuntu-latest cmakeargs: -DCLAP_WRAPPER_CXX_STANDARD=23 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_COMPILER=gcc-12 install_ninja: false run_aptget: true name: Linux gcc12 C++23 - build_standalone: TRUE - os: macos-latest cmakeargs: -GNinja install_ninja: true run_aptget: false name: MacOS Ninja - build_standalone: TRUE - os: macos-latest cmakeargs: -G"Xcode" install_ninja: false run_aptget: false name: MacOS Xcode - build_standalone: TRUE - os: macos-latest cmakeargs: -G"Ninja Multi-Config" -DCLAP_WRAPPER_CXX_STANDARD=20 install_ninja: true run_aptget: false name: MacOS Ninja Multi C++20 - build_standalone: TRUE - os: macos-latest cmakeargs: -G"Unix Makefiles" install_ninja: false run_aptget: false name: MacOS Unix Makefiles - build_standalone: TRUE steps: - name: Checkout code @@ -165,7 +153,7 @@ jobs: - name: Build project run: | - cmake -S . -B ./build ${{ matrix.cmakeargs }} -DCMAKE_BUILD_TYPE=Debug -DCLAP_WRAPPER_DOWNLOAD_DEPENDENCIES=TRUE -DCLAP_WRAPPER_BUILD_AUV2=TRUE -DCLAP_WRAPPER_BUILD_STANDALONE=${{ matrix.build_standalone }} -DCLAP_WRAPPER_OUTPUT_NAME=downloadplug + cmake -S . -B ./build ${{ matrix.cmakeargs }} -DCMAKE_BUILD_TYPE=Debug -DCLAP_WRAPPER_DOWNLOAD_DEPENDENCIES=TRUE -DCLAP_WRAPPER_BUILD_AUV2=TRUE -DCLAP_WRAPPER_BUILD_STANDALONE=TRUE -DCLAP_WRAPPER_OUTPUT_NAME=downloadplug cmake --build ./build --config Debug - name: Show Build Results From 2c81228c67c53b9266cfc0dd6bfb7189957933cb Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Fri, 18 Jul 2025 11:51:28 -0400 Subject: [PATCH 4/6] Implement CLangCL --- .github/workflows/pullreq.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/pullreq.yml b/.github/workflows/pullreq.yml index 3602ffd0..c71f94f2 100644 --- a/.github/workflows/pullreq.yml +++ b/.github/workflows/pullreq.yml @@ -61,6 +61,13 @@ jobs: run_aptget: false name: Windows 64bit MSVC + - os: windows-latest + cmakeargs: -A x64 -T ClangCL -G"Visual Studio 17 2022" + install_ninja: false + run_aptget: false + name: Windows 64bit VS ClangCL + + - os: windows-latest cmakeargs: -A x64 -DCLAP_WRAPPER_CXX_STANDARD=20 install_ninja: false From 63aaa365eda9a7c52eceb15fe72e0601c24acabf Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Fri, 18 Jul 2025 11:54:55 -0400 Subject: [PATCH 5/6] more work on clangcl --- cmake/shared_prologue.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/shared_prologue.cmake b/cmake/shared_prologue.cmake index ee610bc4..0cf48a0c 100644 --- a/cmake/shared_prologue.cmake +++ b/cmake/shared_prologue.cmake @@ -52,7 +52,7 @@ target_compile_options(clap-wrapper-compile-options-public INTERFACE -D${CLAP_WR if (APPLE) target_link_libraries(clap-wrapper-compile-options-public INTERFACE macos_filesystem_support) endif() -if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" AND (NOT (CMAKE_CXX_COMPILER_ID MATCHES "ClangCL"))) +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" AND (NOT (CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC"))) message(STATUS "clap-wrapper: using gcc/llvm-clang compile options") target_compile_options(clap-wrapper-compile-options INTERFACE -Wall -Wextra -Wno-unused-parameter -Wpedantic) @@ -92,7 +92,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" AND (NOT (CMAKE_CXX_COMPILER_ID MAT endif() -if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR CMAKE_CXX_COMPIPLER_ID MATCHES "ClangCL") +if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC") message(STATUS "clap-wrapper: using MSVC/CLangCL compile options") target_compile_options(clap-wrapper-compile-options-public INTERFACE /utf-8 /Zc:__cplusplus) if ("${CMAKE_CXX_STANDARD}" GREATER_EQUAL 20) From 5b7ee51a280e76e1763a5ed4fa0137662ed381fe Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Fri, 18 Jul 2025 11:55:58 -0400 Subject: [PATCH 6/6] add arm64 arm64ec builds --- .github/workflows/pullreq.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/pullreq.yml b/.github/workflows/pullreq.yml index c71f94f2..70f7c3a1 100644 --- a/.github/workflows/pullreq.yml +++ b/.github/workflows/pullreq.yml @@ -67,6 +67,17 @@ jobs: run_aptget: false name: Windows 64bit VS ClangCL + - os: windows-latest + cmakeargs: -A arm64ec + install_ninja: false + run_aptget: false + name: Windows arm64ec MSVC + + - os: windows-latest + cmakeargs: -A arm64 + install_ninja: false + run_aptget: false + name: Windows arm64 MSVC - os: windows-latest cmakeargs: -A x64 -DCLAP_WRAPPER_CXX_STANDARD=20