From d3c05d303722ad9e0dfa35bd99e903703b9e4383 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 25 Mar 2026 13:54:46 -0400 Subject: [PATCH 1/3] Tests/RunCMake/CMP0119: Update for OrangeC 7 The compiler no longer supports arbitrary source extensions, even when the `-x $lang` flag is given. --- Tests/RunCMake/CMP0119/RunCMakeTest.cmake | 4 +++- Tests/RunCMake/CMakeLists.txt | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Tests/RunCMake/CMP0119/RunCMakeTest.cmake b/Tests/RunCMake/CMP0119/RunCMakeTest.cmake index 2576a28848..da93a9c5f4 100644 --- a/Tests/RunCMake/CMP0119/RunCMakeTest.cmake +++ b/Tests/RunCMake/CMP0119/RunCMakeTest.cmake @@ -12,6 +12,8 @@ if(NOT RunCMake_GENERATOR MATCHES "Visual Studio|Xcode" AND run_CMP0119(WARN) run_CMP0119(OLD) endif() -if((CMAKE_C_COMPILER_ID MATCHES "(GNU|LCC|Clang|MSVC|Borland|Embarcadero|Intel|TI|OrangeC)")) +if((CMAKE_C_COMPILER_ID MATCHES "(GNU|LCC|Clang|MSVC|Borland|Embarcadero|Intel|TI)") + # FIXME(OrangeC#1137): OrangeC 7 no longer accepts custom file extensions with -x + OR (CMAKE_C_COMPILER_ID STREQUAL "OrangeC" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 7)) run_CMP0119(NEW) endif() diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index d684cd3054..0de7c374ee 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -139,7 +139,8 @@ if(CMAKE_GENERATOR MATCHES "Ninja") add_RunCMake_test(CMP0116) endif() add_RunCMake_test(CMP0118) -add_RunCMake_test(CMP0119 -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}) +add_RunCMake_test(CMP0119 -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} + -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION}) add_RunCMake_test(CMP0121) if (CMAKE_SYSTEM_NAME MATCHES "(Linux|Darwin)") add_RunCMake_test(CMP0125 -DCMAKE_SHARED_LIBRARY_PREFIX=${CMAKE_SHARED_LIBRARY_PREFIX} From 0e71175e6ab1eb9effa5cb0fabec1650755f34af Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 25 Mar 2026 14:08:20 -0400 Subject: [PATCH 2/3] Tests/ExternalProjectLocal: Fix example project compilation with OrangeC 7 The compiler fails on integer literals as `double` initializers, giving Error(366) ... Conversion from 'int' to 'double' would require narrowing even if the conversion is lossless. --- Tests/ExternalProjectLocal/Step5/MathFunctions/MakeTable.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Tests/ExternalProjectLocal/Step5/MathFunctions/MakeTable.cxx b/Tests/ExternalProjectLocal/Step5/MathFunctions/MakeTable.cxx index cebd50fcc1..adc02e56a1 100644 --- a/Tests/ExternalProjectLocal/Step5/MathFunctions/MakeTable.cxx +++ b/Tests/ExternalProjectLocal/Step5/MathFunctions/MakeTable.cxx @@ -22,11 +22,12 @@ int main(int argc, char* argv[]) fprintf(fout, "double sqrtTable[] = {\n"); for (i = 0; i < 10; ++i) { result = sqrt(static_cast(i)); - fprintf(fout, "%g,\n", result); + // FIXME(OrangeC#1138): OrangeC 7 no longer accepts plain '0' as a double + fprintf(fout, "%.5f,\n", result); } // close the table with a zero - fprintf(fout, "0};\n"); + fprintf(fout, "0.0};\n"); fclose(fout); return 0; } From 552e1688f33baec77506cc2909c83ec699c55351 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 25 Mar 2026 14:53:03 -0400 Subject: [PATCH 3/3] ci: Add OrangeC 7.0.7 nightly CI job --- .gitlab-ci.yml | 12 ++++++++++++ .gitlab/ci/configure_windows_orangec7.0.7.cmake | 1 + .gitlab/ci/ctest_exclusions.cmake | 7 +++++++ .gitlab/ci/env_windows_orangec7.0.7.ps1 | 2 ++ .gitlab/ci/orangec.ps1 | 7 ++++++- .gitlab/os-windows.yml | 6 ++++++ 6 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .gitlab/ci/configure_windows_orangec7.0.7.cmake create mode 100644 .gitlab/ci/env_windows_orangec7.0.7.ps1 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f6ad76c68d..053dc415f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1534,6 +1534,18 @@ t:windows-orangec6.73.8: variables: CMAKE_CI_JOB_NIGHTLY: "true" +t:windows-orangec7.0.7: + extends: + - .windows_orangec7.0.7 + - .cmake_test_windows_external + - .windows_x86_64_tags_concurrent + - .cmake_junit_artifacts + - .rules + needs: + - t:windows-vs2026-x64-ninja + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + # Windows arm64 jobs b:windows-arm64-vs2026-ninja: diff --git a/.gitlab/ci/configure_windows_orangec7.0.7.cmake b/.gitlab/ci/configure_windows_orangec7.0.7.cmake new file mode 100644 index 0000000000..e667b942db --- /dev/null +++ b/.gitlab/ci/configure_windows_orangec7.0.7.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_orangec_common.cmake") diff --git a/.gitlab/ci/ctest_exclusions.cmake b/.gitlab/ci/ctest_exclusions.cmake index fc03c60e6a..c4f6fd8076 100644 --- a/.gitlab/ci/ctest_exclusions.cmake +++ b/.gitlab/ci/ctest_exclusions.cmake @@ -49,6 +49,13 @@ if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "^macos_x86_64_") ) endif() +if ("$ENV{CMAKE_CONFIGURATION}" MATCHES [[windows_orangec7\.0\.7]]) + list(APPEND test_exclusions + # FIXME(OrangeC#1136): OrangeC 7 no longer fails when linking a missing library + "^RunCMake.CheckModules$" + ) +endif() + if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "windows_clang_fastbuild") list(APPEND test_exclusions # FIXME(#27697): These fail with clang-cl and FASTBuild. diff --git a/.gitlab/ci/env_windows_orangec7.0.7.ps1 b/.gitlab/ci/env_windows_orangec7.0.7.ps1 new file mode 100644 index 0000000000..96e36a1805 --- /dev/null +++ b/.gitlab/ci/env_windows_orangec7.0.7.ps1 @@ -0,0 +1,2 @@ +. .gitlab/ci/ninja-env.ps1 +. .gitlab/ci/orangec-env.ps1 diff --git a/.gitlab/ci/orangec.ps1 b/.gitlab/ci/orangec.ps1 index 8e2ccb3126..0216fff86c 100644 --- a/.gitlab/ci/orangec.ps1 +++ b/.gitlab/ci/orangec.ps1 @@ -1,6 +1,11 @@ $erroractionpreference = "stop" -if ("$env:CMAKE_CONFIGURATION".Contains("orangec6.73.8")) { +if ("$env:CMAKE_CONFIGURATION".Contains("orangec7.0.7")) { + # OrangeC 7.0.7 + $archive = "ZippedBinaries707.zip" + $release = "v7.0.7" + $sha256sum = "853DDE0F4819E65E3EC8F94F67C88C07062F3736BF534D2834FDEFCCE3A0B598" +} elseif ("$env:CMAKE_CONFIGURATION".Contains("orangec6.73.8")) { # OrangeC 6.73.8 $archive = "ZippedBinaries6738.zip" $release = "Orange-C-v6.73.1" # release numbering seems mismatched diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index 3debc9b33e..84fc93b728 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -319,6 +319,12 @@ variables: CMAKE_CONFIGURATION: windows_orangec6.73.8 +.windows_orangec7.0.7: + extends: .windows_orangec + + variables: + CMAKE_CONFIGURATION: windows_orangec7.0.7 + .windows_arm64_vs2026: extends: .windows