From 2494459101cf9d39f5cbd08ef9aabe661d181b23 Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:26:00 -0500 Subject: [PATCH] Add Developer build mode workflow (#5396) * Add Linux only Developer workflow * Add Windows job * -Og already set in GNUFlags file for Debug/Developer mode * Skip fheap test that times out * Add mac and clang jobs * Control version of CMake when building with plugins --- .github/workflows/cmake-ctest.yml | 48 ++++ .github/workflows/cmake-par-script.yml | 2 +- .github/workflows/cmake-par-source.yml | 10 + .github/workflows/cmake-script.yml | 53 ++++ .github/workflows/daily-build.yml | 7 + .github/workflows/dev-cmake.yml | 346 +++++++++++++++++++++++++ config/cmake/HDF5DeveloperBuild.cmake | 8 - config/cmake/HDFClangCXXFlags.cmake | 4 + config/cmake/HDFClangFlags.cmake | 4 + 9 files changed, 473 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/dev-cmake.yml diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml index 37530f3272a..dd7858795bd 100644 --- a/.github/workflows/cmake-ctest.yml +++ b/.github/workflows/cmake-ctest.yml @@ -86,6 +86,17 @@ jobs: - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + - name: Set file base name (Windows) id: set-file-base run: | @@ -222,6 +233,17 @@ jobs: with: version: "1.13.2" + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + - name: Set file base name (Linux) id: set-file-base run: | @@ -339,6 +361,17 @@ jobs: which clang clang -v + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + - name: Install the Apple certificate and provisioning profile shell: bash env: @@ -551,6 +584,11 @@ jobs: sudo apt-get install ninja-build doxygen graphviz sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (Linux S3) id: set-file-base run: | @@ -629,6 +667,11 @@ jobs: compiler: intel version: '2025.0' + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (Windows_intel) id: set-file-base run: | @@ -770,6 +813,11 @@ jobs: compiler: intel version: '2025.0' + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (Linux_intel) id: set-file-base run: | diff --git a/.github/workflows/cmake-par-script.yml b/.github/workflows/cmake-par-script.yml index a4bd14f29af..c7012ce769a 100644 --- a/.github/workflows/cmake-par-script.yml +++ b/.github/workflows/cmake-par-script.yml @@ -355,7 +355,7 @@ jobs: set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=OFF") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF") - set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OF") + set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OFF") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DLIBAEC_USE_LOCALCONTENT:BOOL=OFF") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_USE_LOCALCONTENT:BOOL=OFF") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DPLUGIN_USE_LOCALCONTENT:BOOL=OFF") diff --git a/.github/workflows/cmake-par-source.yml b/.github/workflows/cmake-par-source.yml index a1558f74b84..ef5f2ab5992 100644 --- a/.github/workflows/cmake-par-source.yml +++ b/.github/workflows/cmake-par-source.yml @@ -72,6 +72,11 @@ jobs: with: version: "1.13.2" + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (OpenMPI) id: set-file-base run: | @@ -188,6 +193,11 @@ jobs: with: version: "1.13.2" + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (MPICH) id: set-file-base run: | diff --git a/.github/workflows/cmake-script.yml b/.github/workflows/cmake-script.yml index 8c931ccb315..ce1f3698f6e 100644 --- a/.github/workflows/cmake-script.yml +++ b/.github/workflows/cmake-script.yml @@ -40,6 +40,17 @@ jobs: - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + - name: Set file base name (Windows) id: set-file-base run: | @@ -142,6 +153,11 @@ jobs: with: version: "1.13.2" + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (Linux) id: set-file-base run: | @@ -238,6 +254,17 @@ jobs: which clang clang -v + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + - name: Set up JDK 19 uses: actions/setup-java@v4 with: @@ -341,6 +368,11 @@ jobs: sudo apt-get install ninja-build doxygen graphviz curl sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (Linux S3) id: set-file-base run: | @@ -434,6 +466,11 @@ jobs: compiler: intel version: '2025.0' + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (Windows_intel) id: set-file-base run: | @@ -543,6 +580,11 @@ jobs: compiler: intel version: '2025.0' + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + - name: Set file base name (Linux_intel) id: set-file-base run: | @@ -647,6 +689,17 @@ jobs: which clang clang -v + - name: Install CMake + uses: jwlawson/actions-setup-cmake@v2 + with: + cmake-version: '3.31.6' + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + - name: Set file base name (Linux_clang) id: set-file-base run: | diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml index 4355fd3d4fa..e1963b714b5 100644 --- a/.github/workflows/daily-build.yml +++ b/.github/workflows/daily-build.yml @@ -94,6 +94,13 @@ jobs: build_mode: "Release" if: ${{ ((needs.call-workflow-tarball.outputs.has_changes == 'true') || (needs.get-old-names.outputs.run-ignore == 'ignore')) }} + call-developer-cmake: + needs: [get-old-names, call-workflow-tarball] + name: "CMake Developer Workflows" + uses: ./.github/workflows/dev-cmake.yml + with: + file_base: ${{ needs.call-workflow-tarball.outputs.file_base }} + call-workflow-sanitizers: needs: [get-old-names, call-workflow-tarball] uses: ./.github/workflows/cmake-analysis.yml diff --git a/.github/workflows/dev-cmake.yml b/.github/workflows/dev-cmake.yml new file mode 100644 index 00000000000..ef899455c91 --- /dev/null +++ b/.github/workflows/dev-cmake.yml @@ -0,0 +1,346 @@ +name: hdf5 Developer Mode CMake CI + +on: + workflow_call: + inputs: + file_base: + description: "The common base name of the source tarballs" + required: true + type: string + +permissions: + contents: read + +jobs: + linux_build_and_test: + name: "Linux Developer Mode Express Test Workflows" + + # Don't run the action if the commit message says to skip CI + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + runs-on: ubuntu-latest + steps: + - name: Set file base name (Windows) + id: set-file-base + run: | + FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") + echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT + + - name: Install Linux Dependencies + run: | + sudo apt-get update + sudo apt-get install ninja-build doxygen graphviz + sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + sudo apt install libaec0 libaec-dev + sudo apt install gcc-12 g++-12 gfortran-12 + echo "CC=gcc-12" >> $GITHUB_ENV + echo "CXX=g++-12" >> $GITHUB_ENV + echo "FC=gfortran-12" >> $GITHUB_ENV + + # Get files created by release script + - name: Get tgz-tarball (Linux) + uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + with: + name: tgz-tarball + path: ${{ github.workspace }} + + - name: List files for the space (Linux) + run: | + ls -l ${{ github.workspace }} + ls ${{ runner.workspace }} + + - name: Uncompress source (Linux) + run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz + + - name: List files for the space (Linux) + run: | + ls -l ${{ github.workspace }} + ls ${{ runner.workspace }} + + - name: CMake Configure + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake -C ${{ github.workspace }}/hdfsrc/config/cmake/cacheinit.cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Developer \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_ALL_WARNINGS=ON \ + -DHDF5_ENABLE_DEBUG_H5B2=ON \ + -DHDF5_ENABLE_DEBUG_H5FS_ASSERT=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=OFF \ + -DHDF5_BUILD_CPP_LIB:BOOL=OFF \ + -DHDF5_BUILD_FORTRAN=OFF \ + -DHDF5_BUILD_JAVA=OFF \ + -DHDF5_BUILD_DOC=OFF \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF_TEST_EXPRESS=0 \ + ${{ github.workspace }}/hdfsrc + + - name: CMake Build + run: cmake --build . --parallel 3 --config Developer + working-directory: ${{ runner.workspace }}/build + + - name: CMake Run Tests + env: + HDF5TestExpress: 0 + run: ctest . --parallel 2 -C Developer -V -R H5TESTXPR -E fheap + working-directory: ${{ runner.workspace }}/build + + win_build_and_test: + name: "Windows Developer Mode Express Test Workflows" + + # Don't run the action if the commit message says to skip CI + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + runs-on: windows-latest + steps: + - name: Install Dependencies (Windows) + run: choco install ninja + + - name: Install Dependencies + uses: ssciwr/doxygen-install@v1 + with: + version: "1.13.2" + + - name: Enable Developer Command Prompt + uses: ilammy/msvc-dev-cmd@v1.13.0 + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + + - name: Set file base name (Windows) + id: set-file-base + run: | + FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") + echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT + if [[ '${{ inputs.use_environ }}' == 'release' ]] + then + SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") + else + SOURCE_NAME_BASE=$(echo "hdfsrc") + fi + echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT + shell: bash + + # Get files created by release script + - name: Get zip-tarball (Windows) + uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + with: + name: zip-tarball + path: ${{ github.workspace }} + + - name: using powershell + shell: pwsh + run: Get-Location + + - name: List files for the space (Windows) + run: | + Get-ChildItem -Path ${{ github.workspace }} + Get-ChildItem -Path ${{ runner.workspace }} + shell: pwsh + + - name: Uncompress source (Windows) + working-directory: ${{ github.workspace }} + run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip + shell: bash + + - name: CMake Configure (Windows) + shell: pwsh + run: | + mkdir "${{ runner.workspace }}/build" + Set-Location -Path "${{ runner.workspace }}\\build" + cmake -C ${{ github.workspace }}/hdfsrc/config/cmake/cacheinit.cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_ALL_WARNINGS=ON -DHDF5_ENABLE_DEBUG_H5B2=ON -DHDF5_ENABLE_DEBUG_H5FS_ASSERT=ON -DHDF5_ENABLE_PARALLEL:BOOL=OFF -DHDF5_BUILD_CPP_LIB=OFF -DHDF5_BUILD_FORTRAN=OFF -DHDF5_BUILD_JAVA=OFF -DHDF5_BUILD_DOC=OFF -DLIBAEC_USE_LOCALCONTENT=OFF -DZLIB_USE_LOCALCONTENT=OFF -DHDF_TEST_EXPRESS=0 ${{ github.workspace }}/hdfsrc + + - name: CMake Build + run: cmake --build . --parallel 3 --config Developer + working-directory: ${{ runner.workspace }}/build + + - name: CMake Run Tests + env: + HDF5TestExpress: 0 + run: ctest . --parallel 2 -C Developer -V -R H5TESTXPR -E fheap + working-directory: ${{ runner.workspace }}/build + + build_and_test_mac_latest: + # MacOS w/ Clang + CMake + # + name: "MacOS Clang CMake" + runs-on: macos-latest + steps: + - name: Install Dependencies (MacOS_latest) + run: brew install ninja + + - name: Install Dependencies + uses: ssciwr/doxygen-install@v1 + with: + version: "1.13.2" + + - name: check clang version + shell: bash + run: | + which clang + clang -v + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + + - name: Set file base name (MacOS_latest) + id: set-file-base + run: | + FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") + echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT + if [[ '${{ inputs.use_environ }}' == 'release' ]] + then + SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") + else + SOURCE_NAME_BASE=$(echo "hdfsrc") + fi + echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT + + # Get files created by release script + - name: Get tgz-tarball (MacOS_latest) + uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + with: + name: tgz-tarball + path: ${{ github.workspace }} + + - name: List files for the space (MacOS_latest) + run: | + ls ${{ github.workspace }} + ls ${{ runner.workspace }} + + - name: Uncompress source (MacOS_latest) + run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz + + - name: CMake Configure + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake -C ${{ github.workspace }}/hdfsrc/config/cmake/cacheinit.cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Developer \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_ALL_WARNINGS=ON \ + -DHDF5_ENABLE_DEBUG_H5B2=ON \ + -DHDF5_ENABLE_DEBUG_H5FS_ASSERT=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=OFF \ + -DHDF5_BUILD_CPP_LIB:BOOL=OFF \ + -DHDF5_BUILD_FORTRAN=OFF \ + -DHDF5_BUILD_JAVA=OFF \ + -DHDF5_BUILD_DOC=OFF \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF_TEST_EXPRESS=0 \ + ${{ github.workspace }}/hdfsrc + + - name: CMake Build + run: cmake --build . --parallel 3 --config Developer + working-directory: ${{ runner.workspace }}/build + + - name: CMake Run Tests + env: + HDF5TestExpress: 0 + run: ctest . --parallel 2 -C Developer -V -R H5TESTXPR -E fheap + working-directory: ${{ runner.workspace }}/build + + ####### clang builds + build_and_test_linux_clang: + # Linux (Ubuntu) w/ clang + CMake + # + name: "Ubuntu Clang CMake" + runs-on: ubuntu-22.04 + steps: + - name: Install CMake Dependencies (Linux_clang) + run: | + sudo apt-get update + sudo apt-get install ninja-build doxygen graphviz curl libtinfo5 + + - name: add clang to env + uses: KyleMayes/install-llvm-action@v2.0.6 + id: setup-clang + with: + env: true + version: '18.1' + + - name: check clang version + shell: bash + run: | + which clang + clang -v + + - name: check cmake version + shell: bash + run: | + which cmake + cmake --version + + - name: Set file base name (Linux_clang) + id: set-file-base + run: | + FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") + echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT + if [[ '${{ inputs.use_environ }}' == 'release' ]] + then + SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") + else + SOURCE_NAME_BASE=$(echo "hdfsrc") + fi + echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT + + # Get files created by release script + - name: Get tgz-tarball (Linux_clang) + uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + with: + name: tgz-tarball + path: ${{ github.workspace }} + + - name: List files for the space (Linux_clang) + run: | + ls -l ${{ github.workspace }} + ls ${{ runner.workspace }} + + - name: Uncompress source (Linux_clang) + run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz + + - name: CMake Configure + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake -C ${{ github.workspace }}/hdfsrc/config/cmake/cacheinit.cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Developer \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_ALL_WARNINGS=ON \ + -DHDF5_ENABLE_DEBUG_H5B2=ON \ + -DHDF5_ENABLE_DEBUG_H5FS_ASSERT=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=OFF \ + -DHDF5_BUILD_CPP_LIB:BOOL=OFF \ + -DHDF5_BUILD_FORTRAN=OFF \ + -DHDF5_BUILD_JAVA=OFF \ + -DHDF5_BUILD_DOC=OFF \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF_TEST_EXPRESS=0 \ + ${{ github.workspace }}/hdfsrc + + - name: CMake Build + run: cmake --build . --parallel 3 --config Developer + working-directory: ${{ runner.workspace }}/build + + - name: CMake Run Tests + env: + HDF5TestExpress: 0 + run: ctest . --parallel 2 -C Developer -V -R H5TESTXPR -E fheap + working-directory: ${{ runner.workspace }}/build + diff --git a/config/cmake/HDF5DeveloperBuild.cmake b/config/cmake/HDF5DeveloperBuild.cmake index 0bd5b527eb0..87fd0302d47 100644 --- a/config/cmake/HDF5DeveloperBuild.cmake +++ b/config/cmake/HDF5DeveloperBuild.cmake @@ -17,14 +17,6 @@ set (CMAKE_CXX_FLAGS_DEVELOPER ${CMAKE_CXX_FLAGS_DEBUG} CACHE STRING "Flags used by the C++ compiler during developer builds." FORCE ) -# Set CMake C flags based off of Debug build flags. Add in -Og -# option to disable some GCC optimizations that might affect -# debugging negatively and also include some GCC compiler passes -# that collect debugging information -set (CMAKE_C_FLAGS_DEVELOPER "${CMAKE_C_FLAGS_DEBUG} -Og" CACHE STRING - "Flags used by the C compiler during developer builds." FORCE -) - # Set CMake binary linker flags based off of Debug binary linker flags set (CMAKE_EXE_LINKER_FLAGS_DEVELOPER ${CMAKE_EXE_LINKER_FLAGS_DEBUG} CACHE STRING "Flags used for linking binaries during developer builds." diff --git a/config/cmake/HDFClangCXXFlags.cmake b/config/cmake/HDFClangCXXFlags.cmake index 90b2f07a33f..fa1f8f4edf0 100644 --- a/config/cmake/HDFClangCXXFlags.cmake +++ b/config/cmake/HDFClangCXXFlags.cmake @@ -18,6 +18,10 @@ #----------------------------------------------------------------------------- # Compiler specific flags #----------------------------------------------------------------------------- +if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og -ftrapv -fno-common") +endif () + if (WIN32 AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") set (_CLANG_MSVC_WINDOWS 1) endif() diff --git a/config/cmake/HDFClangFlags.cmake b/config/cmake/HDFClangFlags.cmake index 8b931d965fa..f8e12aeefd7 100644 --- a/config/cmake/HDFClangFlags.cmake +++ b/config/cmake/HDFClangFlags.cmake @@ -18,6 +18,10 @@ #----------------------------------------------------------------------------- # Compiler specific flags #----------------------------------------------------------------------------- +if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Og -ftrapv -fno-common") +endif () + if (WIN32 AND "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC") set (_CLANG_MSVC_WINDOWS 1) if("x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")