diff --git a/.github/workflows/buildThirdPartyLibrary.yml b/.github/workflows/buildThirdPartyLibrary.yml index 9d05e6e49..b497412f2 100644 --- a/.github/workflows/buildThirdPartyLibrary.yml +++ b/.github/workflows/buildThirdPartyLibrary.yml @@ -19,20 +19,29 @@ jobs: fail-fast: false matrix: include: - - name: 'Windows release' + - name: 'Windows release (Intel)' os: windows-latest + arch: amd64 build_type: Release - - name: 'Windows debug' + - name: 'Windows debug (Intel)' os: windows-latest + arch: amd64 build_type: Debug - - name: 'Linux' - os: ubuntu-20.04 - # Note: we must use ubuntu-20.04 rather than ubuntu-latest (i.e. ubuntu-22.04 at this stage). Indeed, - # Ubuntu 22.04's copy of glibc doesn't include libpthread anymore (see - # https://developers.redhat.com/articles/2021/12/17/why-glibc-234-removed-libpthread). Yet, to build - # our Python wheels on Linux, we have no choice but to use manylinux_2_28, which relies on a version - # of glibc with libpthread, hence getting various messages about __libc_single_threaded being - # undefined when trying to build our Python wheels using third-party libraries built on ubuntu-22.04. + - name: 'Windows release (ARM)' + os: windows-latest + arch: amd64_arm64 + build_type: Release + - name: 'Windows debug (ARM)' + os: windows-latest + arch: amd64_arm64 + build_type: Debug + - name: 'Linux (Intel)' + os: ubuntu-latest + build_type: Release + - name: 'Linux (ARM)' + os: ubuntu-latest + arch: arm + context: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ build_type: Release - name: 'macOS (Intel)' os: macos-13 @@ -48,20 +57,47 @@ jobs: steps: - name: Check out libOpenCOR uses: actions/checkout@v4 + - name: Install ARM compiler + if: ${{ matrix.arch == 'arm' }} + run: | + sudo apt update + sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - name: Install CMake and Ninja uses: lukka/get-cmake@latest - name: Install buildcache uses: cscouto/buildcache-action@v1 with: cache_key: libraries-${{ matrix.os }}-${{ matrix.shared_libs }} + - name: Configure MSVC (to build an Intel-based version of llvm-tblgen and clang-tblgen; only when building LLVM+Clang on Windows ARM) + if: ${{ (inputs.third_party_library_name == 'LLVMClang') && (runner.os == 'Windows') && (matrix.arch == 'amd64_arm64') }} + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: amd64 + - name: Build llvm-tblgen and clang-tblgen (only when building LLVM+Clang on ARM) + if: ${{ (inputs.third_party_library_name == 'LLVMClang') && (((runner.os == 'Windows') && (matrix.arch == 'amd64_arm64')) || ((runner.os == 'Linux') && (matrix.arch == 'arm'))) }} + shell: bash + run: | + source src/3rdparty/LLVMClang/scripts/buildllvmclangtblgen ${{ runner.os == 'Windows' }} + echo "DLLVMCLANG_LLVM_TABLEGEN=$DLLVMCLANG_LLVM_TABLEGEN" >> $GITHUB_ENV + echo "DLLVMCLANG_CLANG_TABLEGEN=$DLLVMCLANG_CLANG_TABLEGEN" >> $GITHUB_ENV - name: Configure MSVC if: ${{ runner.os == 'Windows' }} uses: ilammy/msvc-dev-cmd@v1 - - name: Configure libOpenCOR + with: + arch: ${{ matrix.arch }} + - name: Configure libOpenCOR (only when building LLVM+Clang) + if: ${{ inputs.third_party_library_name == 'LLVMClang' }} + shell: bash + run: | + mkdir build + cd build + ${{ matrix.context }} cmake -G Ninja -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_LLVMCLANG=OFF ${{ env.DLLVMCLANG_LLVM_TABLEGEN }} ${{ env.DLLVMCLANG_CLANG_TABLEGEN }} .. + - name: Configure libOpenCOR (only when NOT building LLVM+Clang) + if: ${{ inputs.third_party_library_name != 'LLVMClang' }} run: | mkdir build cd build - ${{ matrix.cmake_prereqs }} cmake -G Ninja -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_${{ inputs.third_party_library_name }}=OFF .. + ${{ matrix.context }} cmake -G Ninja -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_${{ inputs.third_party_library_name }}=OFF .. - name: Upload library artifact if: ${{ !startsWith(github.ref, 'refs/tags/v') }} uses: actions/upload-artifact@v4 diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 550154840..d53011497 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -15,18 +15,38 @@ jobs: fail-fast: false matrix: include: - - name: 'Windows static library' + - name: 'Windows static library (Intel)' os: windows-latest + arch: amd64 shared_libs: OFF - - name: 'Windows shared library' + - name: 'Windows shared library (Intel)' os: windows-latest + arch: amd64 shared_libs: ON - - name: 'Linux static library' + - name: 'Windows static library (ARM)' + os: windows-latest + arch: amd64_arm64 + shared_libs: OFF + - name: 'Windows shared library (ARM)' + os: windows-latest + arch: amd64_arm64 + shared_libs: ON + - name: 'Linux static library (Intel)' + os: ubuntu-latest + shared_libs: OFF + - name: 'Linux shared library (Intel)' + os: ubuntu-latest + shared_libs: ON + - name: 'Linux static library (ARM)' os: ubuntu-latest + arch: arm shared_libs: OFF - - name: 'Linux shared library' + context: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ + - name: 'Linux shared library (ARM)' os: ubuntu-latest + arch: arm shared_libs: ON + context: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ - name: 'macOS static library (Intel)' os: macos-13 shared_libs: OFF @@ -47,6 +67,11 @@ jobs: steps: - name: Check out libOpenCOR uses: actions/checkout@v4 + - name: Install ARM compiler + if: ${{ matrix.arch == 'arm' }} + run: | + sudo apt update + sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - name: Install CMake and Ninja uses: lukka/get-cmake@latest - name: Install buildcache @@ -56,11 +81,13 @@ jobs: - name: Configure MSVC if: ${{ runner.os == 'Windows' }} uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.arch }} - name: Configure libOpenCOR run: | mkdir build cd build - cmake -G Ninja -DBUILD_TYPE=Release -DCODE_ANALYSIS=OFF -DCODE_COVERAGE=OFF -DDOCUMENTATION=OFF -DJAVASCRIPT_BINDINGS=OFF -DMEMORY_CHECKS=OFF -DPYTHON_BINDINGS=OFF -DPYTHON_UNIT_TESTING=OFF -DSHARED_LIBS=${{ matrix.shared_libs }} -DUNIT_TESTING=OFF .. + ${{ matrix.context }} cmake -G Ninja -DBUILD_TYPE=Release -DCODE_ANALYSIS=OFF -DCODE_COVERAGE=OFF -DDOCUMENTATION=OFF -DJAVASCRIPT_BINDINGS=OFF -DMEMORY_CHECKS=OFF -DPYTHON_BINDINGS=OFF -DPYTHON_UNIT_TESTING=OFF -DSHARED_LIBS=${{ matrix.shared_libs }} -DUNIT_TESTING=OFF .. - name: Build libOpenCOR run: | cd build @@ -102,12 +129,12 @@ jobs: if: ${{ runner.os == 'Windows' }} uses: ilammy/msvc-dev-cmd@v1 - name: Build Python wheels - uses: pypa/cibuildwheel@v2.21.3 + uses: pypa/cibuildwheel@9c75ea15c2f31a77e6043b80b1b7081372319d85 env: CIBW_ARCHS: auto64 CIBW_BUILD: 'cp*' - CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0 - CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28 + CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=13.0 + CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_34 CIBW_SKIP: 'cp36* cp37* cp38* *musllinux*' - name: Upload Python wheel artifacts if: ${{ !startsWith(github.ref, 'refs/tags/v') }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33ebb6e87..bad33958a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,8 +13,9 @@ jobs: fail-fast: false matrix: include: - - name: 'Windows static library' + - name: 'Windows static library (Intel)' os: windows-latest + arch: amd64 build_type: Release code_analysis: OFF code_coverage: OFF @@ -28,8 +29,9 @@ jobs: unit_testing: ON target: unit_testing install_uninstall_and_package: ON - - name: 'Windows shared library' + - name: 'Windows shared library (Intel)' os: windows-latest + arch: amd64 build_type: Release code_analysis: OFF code_coverage: OFF @@ -43,7 +45,39 @@ jobs: unit_testing: ON target: unit_testing install_uninstall_and_package: ON - - name: 'Linux static library' + - name: 'Windows static library (ARM) (no tests)' + os: windows-latest + arch: amd64_arm64 + build_type: Release + code_analysis: OFF + code_coverage: OFF + documentation: OFF + javascript_bindings: OFF + javascript_unit_testing: OFF + memory_checks: OFF + python_bindings: OFF + python_unit_testing: OFF + shared_libs: OFF + unit_testing: OFF + target: unit_testing + install_uninstall_and_package: ON + - name: 'Windows shared library (ARM) (no tests)' + os: windows-latest + arch: amd64_arm64 + build_type: Release + code_analysis: OFF + code_coverage: OFF + documentation: OFF + javascript_bindings: OFF + javascript_unit_testing: OFF + memory_checks: OFF + python_bindings: OFF + python_unit_testing: OFF + shared_libs: ON + unit_testing: OFF + target: unit_testing + install_uninstall_and_package: ON + - name: 'Linux static library (Intel)' os: ubuntu-latest build_type: Release code_analysis: OFF @@ -58,7 +92,7 @@ jobs: unit_testing: ON target: unit_testing install_uninstall_and_package: ON - - name: 'Linux shared library' + - name: 'Linux shared library (Intel)' os: ubuntu-latest build_type: Release code_analysis: OFF @@ -73,6 +107,40 @@ jobs: unit_testing: ON target: unit_testing install_uninstall_and_package: ON + - name: 'Linux static library (ARM) (no tests)' + os: ubuntu-latest + arch: arm + build_type: Release + code_analysis: OFF + code_coverage: OFF + documentation: OFF + javascript_bindings: OFF + javascript_unit_testing: OFF + memory_checks: OFF + python_bindings: OFF + python_unit_testing: OFF + shared_libs: OFF + unit_testing: OFF + target: unit_testing + install_uninstall_and_package: ON + context: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ + - name: 'Linux shared library (ARM) (no tests)' + os: ubuntu-latest + arch: arm + build_type: Release + code_analysis: OFF + code_coverage: OFF + documentation: OFF + javascript_bindings: OFF + javascript_unit_testing: OFF + memory_checks: OFF + python_bindings: OFF + python_unit_testing: OFF + shared_libs: ON + unit_testing: OFF + target: unit_testing + install_uninstall_and_package: ON + context: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ - name: 'macOS static library (Intel)' os: macos-13 build_type: Release @@ -149,6 +217,7 @@ jobs: target: javascript_unit_testing - name: 'Windows Python bindings' os: windows-latest + arch: amd64 build_type: Release code_analysis: OFF code_coverage: OFF @@ -316,11 +385,14 @@ jobs: BUILDCACHE_COMPRESS_FORMAT: ZSTD BUILDCACHE_DEBUG: -1 BUILDCACHE_LOG_FILE: "" - DOXYGEN_VERSION: 1.9.3 - LLVMCLANG_VERSION: 18.1.8 steps: - name: Check out libOpenCOR uses: actions/checkout@v4 + - name: Install ARM compiler + if: ${{ matrix.arch == 'arm' }} + run: | + sudo apt update + sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - name: Install Python uses: actions/setup-python@v5 with: @@ -334,6 +406,8 @@ jobs: - name: Configure MSVC if: ${{ runner.os == 'Windows' }} uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.arch }} - name: Install LLVM if: ${{ matrix.code_coverage == 'ON' }} run: | @@ -342,20 +416,20 @@ jobs: - name: Install Clang if: ${{ matrix.code_analysis == 'ON' }} run: | - wget https://github.com/opencor/gha/releases/download/gha/clang.${LLVMCLANG_VERSION}.linux.tar.gz -O - | tar -xz + wget https://github.com/opencor/gha/releases/download/gha/clang.tar.gz -O - | tar -xz sudo mv clang /usr/local/bin sudo cp /usr/local/bin/clang /usr/local/bin/clang++ - wget https://github.com/opencor/gha/releases/download/gha/clang-include.${LLVMCLANG_VERSION}.linux.tar.gz -O - | tar -xz + wget https://github.com/opencor/gha/releases/download/gha/clang-include.tar.gz -O - | tar -xz sudo mv include/* /usr/local/include - name: Install ClangFormat if: ${{ matrix.target == 'check_code_formatting' }} run: | - wget https://github.com/opencor/gha/releases/download/gha/clang-format.${LLVMCLANG_VERSION}.linux.tar.gz -O - | tar -xz + wget https://github.com/opencor/gha/releases/download/gha/clang-format.tar.gz -O - | tar -xz sudo mv clang-format /usr/local/bin - name: Install Clang-Tidy if: ${{ matrix.name == 'Code analysis' }} run: | - wget https://github.com/opencor/gha/releases/download/gha/clang-tidy.${LLVMCLANG_VERSION}.linux.tar.gz -O - | tar -xz + wget https://github.com/opencor/gha/releases/download/gha/clang-tidy.tar.gz -O - | tar -xz sudo mv clang-tidy /usr/local/bin - name: Install Emscripten if: ${{ matrix.javascript_unit_testing == 'ON' }} @@ -380,7 +454,7 @@ jobs: - name: Install Doxygen if: ${{ matrix.documentation == 'ON' }} run: | - wget https://github.com/opencor/gha/releases/download/gha/doxygen.${DOXYGEN_VERSION}.linux.tar.gz -O - | tar -xz + wget https://github.com/opencor/gha/releases/download/gha/doxygen.tar.gz -O - | tar -xz sudo mv doxygen /usr/local/bin - name: Configure libOpenCOR run: | diff --git a/CMakeLists.txt b/CMakeLists.txt index a4dba77d1..0076657a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,6 +95,8 @@ else() set(LIBOPENCOR_CODE_ANALYSIS ${CODE_ANALYSIS} CACHE BOOL "${LIBOPENCOR_CODE_ANALYSIS_DOCSTRING}" FORCE) elseif(CODE_ANALYSIS) message(SEND_ERROR "${CODE_ANALYSIS_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(CODE_ANALYSIS CACHE) @@ -110,6 +112,8 @@ else() set(LIBOPENCOR_CODE_COVERAGE ${CODE_COVERAGE} CACHE BOOL "${LIBOPENCOR_CODE_COVERAGE_DOCSTRING}" FORCE) elseif(CODE_COVERAGE) message(SEND_ERROR "${CODE_COVERAGE_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(CODE_COVERAGE CACHE) @@ -125,6 +129,8 @@ else() set(LIBOPENCOR_COMPILER_CACHING ${COMPILER_CACHING} CACHE BOOL "${LIBOPENCOR_COMPILER_CACHING_DOCSTRING}" FORCE) elseif(COMPILER_CACHING) message(SEND_ERROR "${COMPILER_CACHING_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(COMPILER_CACHING CACHE) @@ -140,6 +146,8 @@ else() set(LIBOPENCOR_DOCUMENTATION ${DOCUMENTATION} CACHE BOOL "${LIBOPENCOR_DOCUMENTATION_DOCSTRING}" FORCE) elseif(DOCUMENTATION) message(SEND_ERROR "${DOCUMENTATION_AVAILABLE_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(DOCUMENTATION CACHE) @@ -173,6 +181,8 @@ else() set(LIBOPENCOR_JAVASCRIPT_BINDINGS ${JAVASCRIPT_BINDINGS} CACHE BOOL "${LIBOPENCOR_JAVASCRIPT_BINDINGS_DOCSTRING}" FORCE) elseif(JAVASCRIPT_BINDINGS) message(SEND_ERROR "${JAVASCRIPT_BINDINGS_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(JAVASCRIPT_BINDINGS CACHE) @@ -189,6 +199,8 @@ else() set(LIBOPENCOR_JAVASCRIPT_UNIT_TESTING ${JAVASCRIPT_UNIT_TESTING} CACHE BOOL "${LIBOPENCOR_JAVASCRIPT_UNIT_TESTING_DOCSTRING}" FORCE) elseif(JAVASCRIPT_UNIT_TESTING) message(SEND_ERROR "${JAVASCRIPT_UNIT_TESTING_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(JAVASCRIPT_UNIT_TESTING CACHE) @@ -205,6 +217,8 @@ else() set(LIBOPENCOR_MEMORY_CHECKS ${MEMORY_CHECKS} CACHE BOOL "${LIBOPENCOR_MEMORY_CHECKS_DOCSTRING}" FORCE) elseif(MEMORY_CHECKS) message(SEND_ERROR "${MEMORY_CHECKS_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(MEMORY_CHECKS CACHE) @@ -363,6 +377,8 @@ else() set(LIBOPENCOR_PYTHON_BINDINGS ${PYTHON_BINDINGS} CACHE BOOL "${LIBOPENCOR_PYTHON_BINDINGS_DOCSTRING}" FORCE) elseif(PYTHON_BINDINGS) message(SEND_ERROR "${PYTHON_BINDINGS_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(PYTHON_BINDINGS CACHE) @@ -379,6 +395,8 @@ else() set(LIBOPENCOR_PYTHON_UNIT_TESTING ${PYTHON_UNIT_TESTING} CACHE BOOL "${LIBOPENCOR_PYTHON_UNIT_TESTING_DOCSTRING}" FORCE) elseif(PYTHON_UNIT_TESTING) message(SEND_ERROR "${PYTHON_UNIT_TESTING_ERROR_MESSAGE}") + + set(SENT_ERRORS TRUE) endif() unset(PYTHON_UNIT_TESTING CACHE) @@ -441,32 +459,44 @@ else() if(LIBOPENCOR_CODE_COVERAGE) if(NOT LIBOPENCOR_SHARED_LIBS) message(SEND_ERROR "Configuration confusion: code coverage is requested which means that a static library cannot be requested.") + + set(SENT_ERRORS TRUE) endif() if(NOT LIBOPENCOR_UNIT_TESTING) message(SEND_ERROR "Configuration confusion: code coverage is requested which means that unit testing should also be requested.") + + set(SENT_ERRORS TRUE) endif() endif() if(LIBOPENCOR_MEMORY_CHECKS) if("${LIBOPENCOR_BUILD_TYPE}" STREQUAL "Release") message(SEND_ERROR "Configuration confusion: memory checks are requested which means that a release build cannot also be requested.") + + set(SENT_ERRORS TRUE) endif() if(NOT LIBOPENCOR_UNIT_TESTING) message(SEND_ERROR "Configuration confusion: memory checks are requested which means that unit testing should also be requested.") + + set(SENT_ERRORS TRUE) endif() endif() if(LIBOPENCOR_PYTHON_BINDINGS) if(LIBOPENCOR_SHARED_LIBS) message(SEND_ERROR "Configuration confusion: Python bindings are requested which means that a shared library cannot be requested.") + + set(SENT_ERRORS TRUE) endif() endif() if(LIBOPENCOR_PYTHON_UNIT_TESTING) if(NOT LIBOPENCOR_PYTHON_BINDINGS) message(SEND_ERROR "Configuration confusion: Python unit testing is requested which means that Python bindings should also be requested.") + + set(SENT_ERRORS TRUE) endif() endif() @@ -474,9 +504,15 @@ else() if( NOT "${LIBOPENCOR_TARGET_ARCHITECTURE}" STREQUAL "Intel" AND NOT "${LIBOPENCOR_TARGET_ARCHITECTURE}" STREQUAL "ARM") message(SEND_ERROR "Configuration error: unsupported target architecture (${LIBOPENCOR_TARGET_ARCHITECTURE}). Supported target architectures are Intel and ARM.") + + set(SENT_ERRORS TRUE) endif() endif() + if(SENT_ERRORS) + return() + endif() + # Determine whether we are building in release mode. # Note: this only makes sense if we are not in a multi-configuration mode, i.e. IS_MULTI_CONFIG is equal to FALSE, which # is likely to be the case when building a third-party library. diff --git a/cmake/common.cmake b/cmake/common.cmake index 2aa7b90a6..05348d87b 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -63,13 +63,6 @@ function(configure_target TARGET) endif() endif() - # Make it possible to use LLVM+Clang 18+ when building using MSVC (see - # https://github.com/llvm/llvm-project/issues/86028). - - if(BUILDING_USING_MSVC) - target_compile_options(${TARGET} PRIVATE /Zc:preprocessor) - endif() - # Analyse the code. if(LIBOPENCOR_CODE_ANALYSIS) @@ -150,12 +143,14 @@ function(configure_target TARGET) ${MISC_CHECKS} modernize-* -modernize-pass-by-value + -modernize-use-designated-initializers -modernize-use-trailing-return-type performance-* readability-* -readability-avoid-nested-conditional-operator -readability-function-cognitive-complexity -readability-identifier-length + -readability-math-missing-parentheses ${READABILITY_CHECKS} ) diff --git a/cmake/packages.cmake b/cmake/packages.cmake index 8a6d18b16..3cb096e4a 100644 --- a/cmake/packages.cmake +++ b/cmake/packages.cmake @@ -271,12 +271,10 @@ else() set(TARGET_PLATFORM_ARCHITECTURE linux) endif() - if(APPLE) - if("${LIBOPENCOR_TARGET_ARCHITECTURE}" STREQUAL "Intel") - set(TARGET_PLATFORM_ARCHITECTURE ${TARGET_PLATFORM_ARCHITECTURE}.intel) - else() - set(TARGET_PLATFORM_ARCHITECTURE ${TARGET_PLATFORM_ARCHITECTURE}.arm) - endif() + if("${LIBOPENCOR_TARGET_ARCHITECTURE}" STREQUAL "Intel") + set(TARGET_PLATFORM_ARCHITECTURE ${TARGET_PLATFORM_ARCHITECTURE}.intel) + else() + set(TARGET_PLATFORM_ARCHITECTURE ${TARGET_PLATFORM_ARCHITECTURE}.arm) endif() endif() diff --git a/src/3rdparty/LLVMClang/CMakeLists.txt b/src/3rdparty/LLVMClang/CMakeLists.txt index 1641adfa6..7e9af0cfa 100644 --- a/src/3rdparty/LLVMClang/CMakeLists.txt +++ b/src/3rdparty/LLVMClang/CMakeLists.txt @@ -13,9 +13,9 @@ # limitations under the License. set(PACKAGE_NAME LLVMClang) -set(PACKAGE_VERSION 18.1.8) +set(PACKAGE_VERSION 14.0.6) set(PACKAGE_REPOSITORY llvm-project) -set(RELEASE_TAG llvmorg-18.1.8) +set(RELEASE_TAG llvmorg-14.0.6-libopencor) set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) # Either retrieve or build our package. @@ -23,28 +23,46 @@ set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) if(LIBOPENCOR_PREBUILT_LLVMCLANG) if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + ed27236c72d868f8b1ce8182875d9a79781359ae) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 02c47edadc01c2eba45fb59b265c5b0b29e34b82) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + ca628a5552253fa1c2761c2e63da2943af34657a) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + a26fb6965b4fea70e7766e37e169a7d2dfd0445f) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 843e3caf60ed5dffab9bd55326da195b6b850553) + ebe4b27f8c22b04e1d928e0aa939adb23d00e86d) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - bbdc5f37a97cdfb78748ee1f75d25f44ef24f707) + d8dd7fa7c63f7598123825e5d6c64a08a0fa02e7) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 9478d8f5446e19ba9a496cb72d4bc1ff0c31d6f5) + 0d6dee02589df7e0861904be4d27869d678ee297) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 519fee44fc83145bbbe7c027e5e78aa32a8bdbfa) + d0b16e05b880ab10117301eac942ba0399ebe8aa) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5e8c850c5272cfb95b743a8c1141f71dcd15c7f9) endif() else() # Build our package. @@ -55,6 +73,14 @@ else() set(LLVM_TARGETS_TO_BUILD AArch64) endif() + if(LLVMCLANG_LLVM_TABLEGEN) + set(LLVM_TABLEGEN -DLLVM_TABLEGEN=${LLVMCLANG_LLVM_TABLEGEN}) + endif() + + if(LLVMCLANG_CLANG_TABLEGEN) + set(CLANG_TABLEGEN -DCLANG_TABLEGEN=${LLVMCLANG_CLANG_TABLEGEN}) + endif() + build_package(${PACKAGE_NAME} URL https://github.com/opencor/${PACKAGE_REPOSITORY}/archive/refs/tags/${RELEASE_TAG}.tar.gz @@ -65,9 +91,8 @@ else() -DCLANG_BUILD_TOOLS=OFF -DCLANG_ENABLE_ARCMT=OFF -DCLANG_ENABLE_STATIC_ANALYZER=OFF - -DCLANG_INCLUDE_DOCS=OFF - -DCLANG_INCLUDE_TESTS=OFF -DCLANG_PLUGIN_SUPPORT=OFF + ${CLANG_TABLEGEN} -DCLANG_TOOLING_BUILD_AST_INTROSPECTION=OFF -DCLANG_TOOL_HANDLE_CXX_BUILD=OFF -DCLANG_TOOL_HANDLE_LLVM_BUILD=OFF @@ -75,6 +100,7 @@ else() -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DLIBCLANG_BUILD_STATIC=ON -DLIBOPENCOR=ON + -DLLVM_BUILD_LLVM_C_DYLIB=OFF -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_RUNTIMES=OFF -DLLVM_BUILD_TOOLS=OFF @@ -83,29 +109,26 @@ else() -DLLVM_ENABLE_BACKTRACES=OFF -DLLVM_ENABLE_BINDINGS=OFF -DLLVM_ENABLE_CRASH_OVERRIDES=OFF - -DLLVM_ENABLE_DIA_SDK=OFF -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_ENABLE_LIBPFM=OFF -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_MODULE_DEBUGGING=OFF -DLLVM_ENABLE_OCAMLDOC=OFF -DLLVM_ENABLE_PEDANTIC=OFF - -DLLVM_ENABLE_PIC=ON -DLLVM_ENABLE_PLUGINS=OFF -DLLVM_ENABLE_PROJECTS=clang - -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_TERMINFO=OFF + -DLLVM_ENABLE_UNWIND_TABLES=OFF -DLLVM_ENABLE_WARNINGS=OFF -DLLVM_ENABLE_ZLIB=OFF - -DLLVM_ENABLE_ZSTD=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF - -DLLVM_INCLUDE_GO_TESTS=OFF -DLLVM_INCLUDE_RUNTIMES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=OFF + ${LLVM_TABLEGEN} -DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS_TO_BUILD} ) @@ -162,7 +185,6 @@ set(LLVMCLANG_INCLUDE_DIR ${INSTALL_DIR}/include CACHE INTERNAL "${PACKAGE_NAME} set(LLVMCLANG_LIBRARIES clangAnalysis clangAnalysisFlowSensitive - clangAnalysisFlowSensitiveModels clangAPINotes clangAST clangASTMatchers @@ -174,7 +196,6 @@ set(LLVMCLANG_LIBRARIES clangDriver clangDynamicASTMatchers clangEdit - clangExtractAPI clangFormat clangFrontend clangFrontendTool @@ -190,12 +211,11 @@ set(LLVMCLANG_LIBRARIES clangStaticAnalyzerCheckers clangStaticAnalyzerCore clangStaticAnalyzerFrontend - clangSupport + clangTesting clangTooling clangToolingASTDiff clangToolingCore clangToolingInclusions - clangToolingInclusionsStdlib clangToolingRefactoring clangToolingSyntax clangTransformer @@ -211,44 +231,33 @@ set(LLVMCLANG_LIBRARIES LLVMCFGuard LLVMCFIVerify LLVMCodeGen - LLVMCodeGenTypes LLVMCore LLVMCoroutines LLVMCoverage - LLVMDebugInfoBTF LLVMDebugInfoCodeView LLVMDebuginfod LLVMDebugInfoDWARF LLVMDebugInfoGSYM - LLVMDebugInfoLogicalView LLVMDebugInfoMSF LLVMDebugInfoPDB LLVMDemangle LLVMDiff LLVMDlltoolDriver LLVMDWARFLinker - LLVMDWARFLinkerClassic - LLVMDWARFLinkerParallel LLVMDWP LLVMExecutionEngine LLVMExegesis LLVMExtensions LLVMFileCheck - LLVMFrontendDriver - LLVMFrontendHLSL - LLVMFrontendOffloading LLVMFrontendOpenACC LLVMFrontendOpenMP - LLVMFuzzerCLI LLVMFuzzMutate LLVMGlobalISel - LLVMHipStdPar LLVMInstCombine LLVMInstrumentation LLVMInterfaceStub LLVMInterpreter LLVMipo - LLVMIRPrinter LLVMIRReader LLVMJITLink LLVMLibDriver @@ -262,11 +271,9 @@ set(LLVMCLANG_LIBRARIES LLVMMCParser LLVMMIRParser LLVMObjCARCOpts - LLVMObjCopy LLVMObject LLVMObjectYAML LLVMOption - LLVMOrcDebugging LLVMOrcJIT LLVMOrcShared LLVMOrcTargetProcess @@ -279,15 +286,11 @@ set(LLVMCLANG_LIBRARIES LLVMSupport LLVMSymbolize LLVMTableGen - LLVMTableGenCommon LLVMTableGenGlobalISel LLVMTarget - LLVMTargetParser LLVMTextAPI - LLVMTextAPIBinaryReader LLVMTransformUtils LLVMVectorize - LLVMWindowsDriver LLVMWindowsManifest LLVMXRay ${EXTRA_LLVMCLANG_LIBRARIES} diff --git a/src/3rdparty/LLVMClang/README.rst b/src/3rdparty/LLVMClang/README.rst new file mode 100644 index 000000000..12aeb0dab --- /dev/null +++ b/src/3rdparty/LLVMClang/README.rst @@ -0,0 +1 @@ +Our copy of LLVM+Clang 14.0.6 requires the changes mentioned at https://github.com/opencor/llvm-project/compare/llvmorg-14.0.6...opencor:llvm-project:llvmorg-14.0.6-libopencor to build and work correctly with libOpenCOR. diff --git a/src/3rdparty/LLVMClang/llvmbegin.h b/src/3rdparty/LLVMClang/llvmbegin.h index 65e860414..e9b52daf1 100644 --- a/src/3rdparty/LLVMClang/llvmbegin.h +++ b/src/3rdparty/LLVMClang/llvmbegin.h @@ -16,7 +16,6 @@ limitations under the License. #if defined(BUILDING_USING_MSVC) # pragma warning(push) -# pragma warning(disable: 4003) # pragma warning(disable: 4100) # pragma warning(disable: 4127) # pragma warning(disable: 4146) @@ -26,7 +25,6 @@ limitations under the License. # pragma warning(disable: 4291) # pragma warning(disable: 4324) # pragma warning(disable: 4389) -# pragma warning(disable: 4456) # pragma warning(disable: 4458) # pragma warning(disable: 4459) # pragma warning(disable: 4624) @@ -71,8 +69,8 @@ limitations under the License. # pragma clang diagnostic ignored "-Wswitch-default" # pragma clang diagnostic ignored "-Wswitch-enum" # pragma clang diagnostic ignored "-Wtautological-type-limit-compare" -# pragma clang diagnostic ignored "-Wtautological-unsigned-zero-compare" # pragma clang diagnostic ignored "-Wundefined-func-template" +# pragma clang diagnostic ignored "-Wundefined-reinterpret-cast" # pragma clang diagnostic ignored "-Wunused-but-set-variable" # pragma clang diagnostic ignored "-Wunused-parameter" # pragma clang diagnostic ignored "-Wweak-vtables" diff --git a/src/3rdparty/LLVMClang/scripts/buildllvmclangtblgen b/src/3rdparty/LLVMClang/scripts/buildllvmclangtblgen new file mode 100644 index 000000000..04f489cd9 --- /dev/null +++ b/src/3rdparty/LLVMClang/scripts/buildllvmclangtblgen @@ -0,0 +1,19 @@ +#!/bin/sh + +RELEASE_TAG=llvmorg-14.0.6-libopencor + +curl -Ls https://github.com/opencor/llvm-project/archive/refs/tags/$RELEASE_TAG.zip -o llvm-project-$RELEASE_TAG.zip +unzip -qq llvm-project-$RELEASE_TAG.zip +\rm llvm-project-$RELEASE_TAG.zip + +cd llvm-project-$RELEASE_TAG + +cmake -G Ninja -S ./llvm -B build -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=clang +cmake --build build -t llvm-tblgen clang-tblgen + +if [ "$1" = "true" ]; then + EXTENSION=.exe +fi + +export DLLVMCLANG_LLVM_TABLEGEN=-DLLVMCLANG_LLVM_TABLEGEN=$PWD/build/bin/llvm-tblgen$EXTENSION +export DLLVMCLANG_CLANG_TABLEGEN=-DLLVMCLANG_CLANG_TABLEGEN=$PWD/build/bin/clang-tblgen$EXTENSION diff --git a/src/3rdparty/OpenSSL/CMakeLists.txt b/src/3rdparty/OpenSSL/CMakeLists.txt index d3c9533a4..5e776aec9 100644 --- a/src/3rdparty/OpenSSL/CMakeLists.txt +++ b/src/3rdparty/OpenSSL/CMakeLists.txt @@ -23,28 +23,46 @@ set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) if(LIBOPENCOR_PREBUILT_OPENSSL) if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + c46f9ca66d99d452698f9309927d63219972a089) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + b8b2de7684995a8c02c272e06031b70513793d6b) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + b51022bad09ebc69618eb03f5c80a590564eb2c5) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 369d4639814f3e76357e190e55dc0cb106dc535f) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 117fc350696f830cb82aafb95a47588f6434c177) + 7660430004c42f49aa94905a4fd1fe22d51a10c8) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 7293afb0786724e349cbc14d81b36b3bc15201e5) + c3b59ffbbb56ce818b249a94f6efd72228e1aa40) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5388837e3702b904b4d7b1a9891eda360537ec51) + d5eaa89b18a7e7adce8b641488a6958827fba261) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 22f22109d28cea6ea55681e48bdfd040cc1352db) + af12c894dc1767cae060d925893e777ecf1e439a) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 85dc755b012accd22114b42ddaabb22ea246dd2a) endif() else() # Build our package. @@ -57,22 +75,18 @@ else() list(APPEND CONFIG_OPTIONS no-asm) if(RELEASE_MODE) - set(PLATFORM VC-WIN64A) + if(INTEL_MODE) + set(PLATFORM VC-WIN64A) + else() + set(PLATFORM VC-WIN64-ARM) + endif() else() - set(PLATFORM debug-VC-WIN64A) + if(INTEL_MODE) + set(PLATFORM debug-VC-WIN64A) + else() + set(PLATFORM debug-VC-WIN64-ARM) + endif() endif() - - # Patch the generated makefile since it contains non-escaped paths that result in our build to fail. (Not sure - # why this is the case, but that's the situation!) - - set(MAKEFILE ${CMAKE_CURRENT_BINARY_DIR}/build/${PACKAGE_NAME}-prefix/src/${PACKAGE_NAME}-build/makefile) - - set(PATCH_COMMANDS - COMMAND - ${PERL_EXECUTABLE} -pi -e "s/CC=[^\\\\n]*\\\\n/CC=cl\\\\n/" ${MAKEFILE} - COMMAND - ${PERL_EXECUTABLE} -pi -e "s/RC=[^\\\\n]*\\\\n/RC=rc\\\\n/" ${MAKEFILE} - ) elseif(APPLE) if(INTEL_MODE) set(PLATFORM darwin64-x86_64-cc) @@ -82,7 +96,11 @@ else() list(APPEND CONFIG_OPTIONS "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") else() - set(PLATFORM linux-x86_64) + if(INTEL_MODE) + set(PLATFORM linux-x86_64) + else() + set(PLATFORM linux-aarch64) + endif() list(APPEND CONFIG_OPTIONS "-Wa,--noexecstack") endif() diff --git a/src/3rdparty/SUNDIALS/CMakeLists.txt b/src/3rdparty/SUNDIALS/CMakeLists.txt index fb678f1ed..87d7d6411 100644 --- a/src/3rdparty/SUNDIALS/CMakeLists.txt +++ b/src/3rdparty/SUNDIALS/CMakeLists.txt @@ -24,32 +24,50 @@ if(LIBOPENCOR_PREBUILT_SUNDIALS) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c9f7012b681622c4faa18d2b68f9dee2c236ea74) + beaac7ff588184603fa2948a88c77b3d7c32497d) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + e9e378b1a309196bd927fc74eb2c4d1cd79ff8e3) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 7719db0f3452902a45924680201fcd1fa963f7a4) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 30f266957d7ef6eba73c09420bee526f333be481) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 27f18fc62a18feb5205076c1241c422ab71c5639) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 519fd7c2133ed7efb666193028b50ac4f788f416) + 00de19609d78353ad590b6560071dec699edcc34) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 1bcd8ca9cea9b0d03f35b66058b53e1f06791d03) + be0f52b5aeeb7e938896ae3934bd16d5adfbf5fb) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c07da207a1da3da0dfb638c5bc2ba8908be7007f) + 0df5457e2b7fe733926846d333495d1b408d846e) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c54fd6934c2a72f99ba21dcb88e4d07f9b3e4d00) + db6dc34d20830370a3f247b338fdb91c897ee05a) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 3af6ee478c72261af012eb400fc1bd0e114c1727) endif() endif() else() diff --git a/src/3rdparty/libCOMBINE/CMakeLists.txt b/src/3rdparty/libCOMBINE/CMakeLists.txt index 2b7a0e992..411bade27 100644 --- a/src/3rdparty/libCOMBINE/CMakeLists.txt +++ b/src/3rdparty/libCOMBINE/CMakeLists.txt @@ -28,32 +28,50 @@ if(LIBOPENCOR_PREBUILT_LIBCOMBINE) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - a6d9d575c87fb803fe63680d2b039e4e2aa4baed) + b016e409ec2fd0b9431eac5e3fff872eb44a90bc) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 417f969c2810c27c907fbac40e30e594a015dad7) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 6bafff41f586582cdd05d2c8e40dfb24c14ccf1d) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 1ed8721813361566e6453c0a837a60471c570cf6) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 9962b25c8e6f40e851a76b0312076b48dc184d9b) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c4d636fa1427eb6bb702e1e94a1b7149efd2ffb8) + 1e71439b3b4dadd54b74f35446e2436a79bf6334) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 6940a27fc80f5171072d7d3a0824e641811bc6b8) + 741679e4167de3410bc6aeaeeebea59da76768db) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 0ad5a14ebbffd57c126d777116fa1f22aaa47ab0) + d064e4987b41a02a13b48d91677036511d675e00) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 1eb9641b388e060e99cf52da93f83f5e17a4d78e) + 07095d5eb8a74ca371ef994612d512f9f36b9b16) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 2e0a1cd907d3fad09c20b8378e230ac10ba4a913) endif() endif() else() diff --git a/src/3rdparty/libCellML/CMakeLists.txt b/src/3rdparty/libCellML/CMakeLists.txt index 3b48ca62d..8ba9202f8 100644 --- a/src/3rdparty/libCellML/CMakeLists.txt +++ b/src/3rdparty/libCellML/CMakeLists.txt @@ -34,32 +34,50 @@ if(LIBOPENCOR_PREBUILT_LIBCELLML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - d1e81de9a8acbf48ef02e22deed6d32337b8b7bc) + 924e67c4b413b380945c6a4137285789ff23e94b) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + f3b67746625f3570a09dee34047132b7e6c5bc4f) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 192d46f6205b018a5f27ea6ac9f12138ddac3efa) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + c8cf67ecdf4fe9f94f1c8abe13389007fc7b311d) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 2da2da3e09c14f166951b26d59a5c4149c395543) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 0299c00e0e61cd8f4332e094bda6d51b6a648016) + d94dbd51fdc4904144b50d039f509635efae6c5f) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f9e2e8d8c5e9b6352348c66922b5933cb5ad1b4c) + d33f0b95475084cb728493a3e9c452b96b43d14c) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - cc925cf231f231eb0b86e74f4e5327b0ac412ac7) + 911caa84f5f5cf1b25de831ad76d2a4674340ca3) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 92394488b09c6589dcb302eca01a8ad5ee9ca715) + d1ba5cccc2daf0fd6f36cf90047a6d12b02b6c02) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f46b5bb3600f4fed08d8667457d5c0c04be2b7cc) endif() endif() else() diff --git a/src/3rdparty/libNuML/CMakeLists.txt b/src/3rdparty/libNuML/CMakeLists.txt index d94d78f6f..0a53f34a3 100644 --- a/src/3rdparty/libNuML/CMakeLists.txt +++ b/src/3rdparty/libNuML/CMakeLists.txt @@ -28,32 +28,50 @@ if(LIBOPENCOR_PREBUILT_LIBNUML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 3013cf7509cfbe8baa1130e22e667d8df5e96323) + d735b529a6f26c9bcc4a61056dc0bcb2ecfd39b8) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + a115ff81e6d8cb7ead25706a411830104c59f981) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 62bde227a02854427dbe02514942f2d0f2b0d60d) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 9e8aa22d69f3933de94d6c6ea1f416010797c727) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 92201cc6f54c506beaadac5d6f36b764c57bed34) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c535ddf4307681b441ef9e6fcd896f3d945d91c9) + f6bdfef08fb2918527e3fc2330c136594dbb66f4) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 9882c9681bbf5f2ce0d93e34594db5f98b47e0db) + bd2bb0b0b1c41c316b80a33ee348713bdaf6e5fe) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f5e34187cc73b9727a0a192a8ebb264ca37d89f6) + 33ac5459d32089ce8ed317bedcad089b3def94a9) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5dcda318dcc3bf8e71e81230c883927a26c841ad) + ed844da01dc1bdf2b2845e14f4bfc47912e78b8d) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5b4d707ed7f59a92f4b18c6db7c2cd2bedf9ab5f) endif() endif() else() diff --git a/src/3rdparty/libSBML/CMakeLists.txt b/src/3rdparty/libSBML/CMakeLists.txt index e5278d655..82580f973 100644 --- a/src/3rdparty/libSBML/CMakeLists.txt +++ b/src/3rdparty/libSBML/CMakeLists.txt @@ -28,32 +28,50 @@ if(LIBOPENCOR_PREBUILT_LIBSBML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - bfb94f4153e46be95166a06e7defcb4f9331a44d) + 835666b754839b676b4bb3700e02a51e4490d151) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + d3e6000f91f84645fcad33b2122d9b4498365993) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 723cc9ce5b3238a4f75d0edea92556160b6402e1) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 7ed21fc3cb3c923c5ca179ea73ab674f92a96d4e) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + af78f4d80ad40213a34ced762e8dc55313e20547) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5a39f945e476794599d74071c285f5cd207b5f88) + abc0193d862fc3205f48d7b1aadd96c8f6ff4b8e) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - d836d464e3ce7993c167e9181ca5f0421a6a10c6) + 5b0670ffd48d394bed0840614446625bef597691) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 18c6264060c5a9fd84cb38d8e4e5852c8ae17394) + 391b675c4bf59d3443fdf018ce5c505317ca1872) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c6502328d20c918d5b5388a9fea8d1d7d26b75ab) + 40dd7ff95fe5178d245dca6376c62f5b144f0eac) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 074660baeb6430b4da8b058592937c8fc9a7351f) endif() endif() else() diff --git a/src/3rdparty/libSEDML/CMakeLists.txt b/src/3rdparty/libSEDML/CMakeLists.txt index e86280fbb..74bf1e811 100644 --- a/src/3rdparty/libSEDML/CMakeLists.txt +++ b/src/3rdparty/libSEDML/CMakeLists.txt @@ -28,32 +28,50 @@ if(LIBOPENCOR_PREBUILT_LIBSEDML) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - b654c6ad9cf4c6e64f5b7f41765f70f52a4c1694) + 1fb5757fcfb57bc43a44c3a3c6b0f0c6f224185a) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + c7993a1e507b7d2f125972bfc80e9c1e30083bf5) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 35f732501a784f5a224a58c1e2e94a238a31784b) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + f68792352dd78f651c631deb60c7b2f0589667d6) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 87df9517f36d36273bf1e2b6b9acc1a833304500) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 8d6be566b8c87b4b7cd83d8a3b67a32f45cd483e) + a06039f8a66e2878889028d437016520a1b75a2f) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 199ede7b71d10a046aa00d62d201a1dea2bd4ca5) + 2a9db5b4b4c725c1ed3b87c5a6c5cb0782070eda) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 61c917b8c79092fb2db49befb69dafe136c47a69) + 07cc613b3eff1a5380134a7ab4419d03fb39f9c0) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 3da908437161d75bcd8e0cfdf010fb60aadaaa6b) + fdeace11e6eef744d8ba9b749f360dd428867b84) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - ab77f3b89a85e7544c4c3f785ec0cb046c05678a) endif() endif() else() diff --git a/src/3rdparty/libcurl/CMakeLists.txt b/src/3rdparty/libcurl/CMakeLists.txt index 552f94605..6847c9310 100644 --- a/src/3rdparty/libcurl/CMakeLists.txt +++ b/src/3rdparty/libcurl/CMakeLists.txt @@ -27,28 +27,46 @@ endif() if(LIBOPENCOR_PREBUILT_LIBCURL) if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + fb3df60991d05dd4d44c187a8f86396e1aec9d99) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 05f59efcb0c038328af682ef05155070756b964b) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + b3f1e77a6532dfc1619bfa518c069bdd412198d4) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + b08dbb2b2ce1f304dd307739a0a0f3cc86cfbe4e) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - d05d02ef482730c3a3d8886026aa2214d96f2e24) + 8e2e31f33d4100aa7d3144becfc7ca4c42eb6651) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - db94afcfbfa6c99ad50caea67383e1d4c531406b) + 7ad906ec19f0a2390ee53454b968d793b851975e) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 08e013a23400a052686419313baa93105d7c5813) + 7edf9e7c9f9b95c6e6d14e99fed79499bc394c80) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - ec4cec188b6df415fa3e0367295b6792d4f42e90) + 66a0f0dae4287b9a36137fc15195ad04f0e61b14) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f8d6d68a90c37f383a7f5e6730b1d7ea54452ccd) endif() else() # Build our package. diff --git a/src/3rdparty/libssh2/CMakeLists.txt b/src/3rdparty/libssh2/CMakeLists.txt index 5519b5689..22666a100 100644 --- a/src/3rdparty/libssh2/CMakeLists.txt +++ b/src/3rdparty/libssh2/CMakeLists.txt @@ -23,28 +23,46 @@ set(INSTALL_DIR ${PREBUILT_DIR}/${PACKAGE_NAME}) if(LIBOPENCOR_PREBUILT_LIBSSH2) if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 6d2bea2af8f41d79853b8b1f6776365c999a5911) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 661f1e4fc15f67b2c6341eb655bfa586bea8375c) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 31d672e4df88d94c4beab6cea0edc8b35c73b13a) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 9541855997a724e90e26976454b1db09ab03fd2e) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - b034aef740d10333d428ef3738cf9dcbf1319cdc) + a929aa63b53bb84313efcb018cfa9477e2f1044b) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - fdb70ba76cc62673f8f80382b5c1504e5085fc7b) + f5cae05d61c19d6649d30692bd9e9642473c5f26) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 3cbf4f7e8e9302bebb1fb7da6ea444f7c8c3496b) + 8639b3d3df7ce83f2104a599a1507e28288cabc5) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 91e84958df28389afeaf46f6432f44663bb147f1) + 22e787ca84fc018c9dc3582e15c0d14d924684e8) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 8c5b3930100cb97ec118dc645fb1273f51140145) endif() else() # Build our package. diff --git a/src/3rdparty/libxml2/CMakeLists.txt b/src/3rdparty/libxml2/CMakeLists.txt index 7346aa072..a4f13dc83 100644 --- a/src/3rdparty/libxml2/CMakeLists.txt +++ b/src/3rdparty/libxml2/CMakeLists.txt @@ -24,32 +24,50 @@ if(LIBOPENCOR_PREBUILT_LIBXML2) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - f7e23e46dbedc671449f1d34297f333a6374faa6) + 5ae82526ebab3fd9c68d4b5c25373e1f92ad48a6) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + b1a6e4cae66caa28f8303cf2f27e12c33013d235) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 52ca269ef0fb9af83961a5cef430f7b6364048ae) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + a97b5eae4fab32d8fae5950c26196df6bd36eeae) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 99ebec63515098b62b1d9b1046ff3c1eac32016b) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 80441434833bfe74d0b105ffb0e90e3d548e93dd) + 8fe7f1506c8f8b97dafbf362c6cce76015d44414) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - bd4a6823a96ccbb982b5442e8b2dcdfaad4f1d43) + 77ad06e36d08f38d155c1336d514149cf01dd59c) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5825d114236a309e9145f8f97560a24775464dba) + cedbd7db06eef5d776155a572486640b50ad139f) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 54871ea6e95629c81eb9a041281c3ab86e79d914) + 32aa85e0fea4f2580597dfb42aaa277fe9cea091) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - b17c6aca3f0563ccf0abffb6e1bb645c2fbf9729) endif() endif() else() diff --git a/src/3rdparty/zipper/CMakeLists.txt b/src/3rdparty/zipper/CMakeLists.txt index d049abf7f..4687c72aa 100644 --- a/src/3rdparty/zipper/CMakeLists.txt +++ b/src/3rdparty/zipper/CMakeLists.txt @@ -24,32 +24,50 @@ if(LIBOPENCOR_PREBUILT_ZIPPER) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5897b58ebcaedfb98e7f2b7394f13df6c626ae06) + 0ec308672d7a5f658bb781018f33cf334a34d7f1) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + d4e57d33f25bffe10a9230c53b5d2af9c900bff6) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 79c2db3efc6a247926a29f82430dde0f3754d3aa) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 3a8b3c9265450391fd998c29a454ea656656fdfe) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 013af5e94b6277c763cdaad66915ddc7d692f425) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 1b29a495deef311a3029c9a84ed70624b566c3c4) + 5286a5dc4f7b39ce0de4d5a4281895f26a2bf1a7) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 0e25d62e63310b4a94ccf70fad7d5a237fc78c72) + 7e5f68b711642fc485002eeebc81421c23ae4013) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 019dd20f83d6e21103c5c51b767527133893495d) + 6814e32d20a7ce8caf571eb31100bcf27c344ff6) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 6cdbc63773163e668d7f14b2d67a6a09819e4203) + 208df82a4a47a18e19d948da03b636dfaa912165) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 5faa7c54d6b0b5709957e3079c6bd0beb7d86167) endif() endif() else() diff --git a/src/3rdparty/zlib/CMakeLists.txt b/src/3rdparty/zlib/CMakeLists.txt index 9387ee291..ffcfe28ce 100644 --- a/src/3rdparty/zlib/CMakeLists.txt +++ b/src/3rdparty/zlib/CMakeLists.txt @@ -24,32 +24,50 @@ if(LIBOPENCOR_PREBUILT_ZLIB) if(EMSCRIPTEN) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - be6986ea91a9e61474321bc8eecfd4a18b2c48c5) + ee5c6e75b001a7527f5ba56934244eb8c255dfb3) else() if(WIN32) if(RELEASE_MODE) + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 216fd1466cbad56cd29c4d552f150c8faa206c04) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + b3cb8c7cdd9821be6bf12e409abce88ca5a19380) + endif() + else() + if(INTEL_MODE) + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + 37846b8137bb7ec5d49f19667aa084795ba099ab) + else() + retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} + ${PACKAGE_REPOSITORY} ${RELEASE_TAG} + f7d9810c1d9060954d54753c633f723b592281af) + endif() + endif() + elseif(APPLE) + if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - c0452a635bd0206648219341ffb90b76441b8472) + ea7937a62c9a9fb92362ca8ef2a40088f30a9499) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 3fac0e6cec7df429e0f41a79786f9bc699a4921e) + d6ebf32cdd8ec89b4c15223116e8c8b2a6fd3d68) endif() - elseif(APPLE) + else() if(INTEL_MODE) retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - cb8f7e83a9eab059b96360306e6459063509b5b2) + 866bd9e440f13a598d25a68f91afed3629cf05a5) else() retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 14656bd60de8b946ff42ad5cca4f42f82a74da0e) + 198cb2c7b007002218baffeae3c6c5d7d8b31138) endif() - else() - retrieve_package(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${PACKAGE_REPOSITORY} ${RELEASE_TAG} - 6d4be8632edaaa840cf0e36d1b0e382afb2b2c57) endif() endif() else() diff --git a/src/file/filemanager.cpp b/src/file/filemanager.cpp index 71bd089f4..69a5837a2 100644 --- a/src/file/filemanager.cpp +++ b/src/file/filemanager.cpp @@ -36,7 +36,7 @@ void FileManager::Impl::manage(File *pFile) void FileManager::Impl::unmanage(File *pFile) { - auto iter = std::find(mFiles.cbegin(), mFiles.cend(), pFile); + auto iter = std::ranges::find(mFiles, pFile); if (iter != mFiles.cend()) { mFiles.erase(iter); @@ -91,7 +91,7 @@ FilePtr FileManager::Impl::file(const std::string &pFileNameOrUrl) const #else auto [isLocalFile, fileNameOrUrl] = retrieveFileInfo(pFileNameOrUrl); #endif - auto res = std::find_if(mFiles.cbegin(), mFiles.cend(), [&](const auto &file) { + auto res = std::ranges::find_if(mFiles, [&](const auto &file) { return isLocalFile ? file->fileName() == fileNameOrUrl : file->url() == fileNameOrUrl; diff --git a/src/misc/compiler.cpp b/src/misc/compiler.cpp index b42cc5eda..340f3d1de 100644 --- a/src/misc/compiler.cpp +++ b/src/misc/compiler.cpp @@ -27,8 +27,8 @@ limitations under the License. #include "clangend.h" #include "llvmbegin.h" +#include "llvm/Support/Host.h" #include "llvm/Support/TargetSelect.h" -#include "llvm/TargetParser/Host.h" #include "llvm-c/Core.h" #include "llvmend.h" @@ -320,7 +320,7 @@ bool Compiler::Impl::addFunction(const std::string &pName, void *pFunction) // name, and function. const bool res = !mLljit->getMainJITDylib().define(llvm::orc::absoluteSymbols({ - {mLljit->mangleAndIntern(pName), {llvm::orc::ExecutorAddr::fromPtr(pFunction), llvm::JITSymbolFlags::Exported}}, + {mLljit->mangleAndIntern(pName), llvm::JITEvaluatedSymbol(llvm::pointerToJITTargetAddress(pFunction), llvm::JITSymbolFlags::Exported)}, })); #ifndef CODE_COVERAGE_ENABLED @@ -340,7 +340,7 @@ void *Compiler::Impl::function(const std::string &pName) const auto symbol = mLljit->lookup(pName); if (symbol) { - return reinterpret_cast(symbol->getValue()); // NOLINT + return reinterpret_cast(symbol->getAddress()); // NOLINT } return {}; diff --git a/src/misc/utils.cpp b/src/misc/utils.cpp index 330afdd35..fffa71809 100644 --- a/src/misc/utils.cpp +++ b/src/misc/utils.cpp @@ -403,7 +403,7 @@ char *nlaSolverAddress(SolverNla *pNlaSolver) auto len = str.size(); auto *res = new char[len + 1]; - std::copy(str.begin(), str.end(), res); + std::ranges::copy(str, res); res[len] = '\0'; // NOLINT diff --git a/src/sed/seddocument.cpp b/src/sed/seddocument.cpp index baba148f6..c8f3d3567 100644 --- a/src/sed/seddocument.cpp +++ b/src/sed/seddocument.cpp @@ -23,6 +23,7 @@ limitations under the License. #include "utils.h" +#include #include namespace libOpenCOR { @@ -152,7 +153,8 @@ std::string SedDocument::Impl::serialise(const std::string &pBasePath) const xmlAddChild(node, sedListOfModels); for (const auto &model : mModels) { - model->pimpl()->serialise(sedListOfModels, pBasePath); + model->pimpl()->setBasePath(pBasePath); + model->pimpl()->serialise(sedListOfModels); } } @@ -269,7 +271,7 @@ bool SedDocument::Impl::addModel(const SedModelPtr &pModel) return false; } - auto model = std::find_if(mModels.cbegin(), mModels.cend(), [&](const auto &s) { + auto model = std::ranges::find_if(mModels, [&](const auto &s) { return s == pModel; }); @@ -284,7 +286,7 @@ bool SedDocument::Impl::addModel(const SedModelPtr &pModel) bool SedDocument::Impl::removeModel(const SedModelPtr &pModel) { - auto model = std::find_if(mModels.cbegin(), mModels.cend(), [&](const auto &s) { + auto model = std::ranges::find_if(mModels, [&](const auto &s) { return s == pModel; }); @@ -328,7 +330,7 @@ bool SedDocument::Impl::addSimulation(const SedSimulationPtr &pSimulation) return false; } - auto simulation = std::find_if(mSimulations.cbegin(), mSimulations.cend(), [&](const auto &s) { + auto simulation = std::ranges::find_if(mSimulations, [&](const auto &s) { return s == pSimulation; }); @@ -343,7 +345,7 @@ bool SedDocument::Impl::addSimulation(const SedSimulationPtr &pSimulation) bool SedDocument::Impl::removeSimulation(const SedSimulationPtr &pSimulation) { - auto simulation = std::find_if(mSimulations.cbegin(), mSimulations.cend(), [&](const auto &s) { + auto simulation = std::ranges::find_if(mSimulations, [&](const auto &s) { return s == pSimulation; }); @@ -387,7 +389,7 @@ bool SedDocument::Impl::addTask(const SedAbstractTaskPtr &pTask) return false; } - auto task = std::find_if(mTasks.cbegin(), mTasks.cend(), [&](const auto &t) { + auto task = std::ranges::find_if(mTasks, [&](const auto &t) { return t == pTask; }); @@ -402,7 +404,7 @@ bool SedDocument::Impl::addTask(const SedAbstractTaskPtr &pTask) bool SedDocument::Impl::removeTask(const SedAbstractTaskPtr &pTask) { - auto task = std::find_if(mTasks.cbegin(), mTasks.cend(), [&](const auto &t) { + auto task = std::ranges::find_if(mTasks, [&](const auto &t) { return t == pTask; }); diff --git a/src/sed/sedmodel.cpp b/src/sed/sedmodel.cpp index 3f71acd45..9667c7d51 100644 --- a/src/sed/sedmodel.cpp +++ b/src/sed/sedmodel.cpp @@ -69,7 +69,12 @@ bool SedModel::Impl::isValid() return !hasErrors(); } -void SedModel::Impl::serialise(xmlNodePtr pNode, const std::string &pBasePath) const +void SedModel::Impl::setBasePath(const std::string &pBasePath) +{ + mBasePath = pBasePath; +} + +void SedModel::Impl::serialise(xmlNodePtr pNode) const { auto *node = xmlNewNode(nullptr, toConstXmlCharPtr("model")); @@ -77,12 +82,12 @@ void SedModel::Impl::serialise(xmlNodePtr pNode, const std::string &pBasePath) c xmlNewProp(node, toConstXmlCharPtr("language"), toConstXmlCharPtr("urn:sedml:language:cellml")); - auto source = pBasePath.empty() ? + auto source = mBasePath.empty() ? urlPath(mFile->path()) : #ifdef BUILDING_USING_MSVC - forwardSlashPath(relativePath(mFile->path(), pBasePath)); + forwardSlashPath(relativePath(mFile->path(), mBasePath)); #else - relativePath(mFile->path(), pBasePath); + relativePath(mFile->path(), mBasePath); #endif xmlNewProp(node, toConstXmlCharPtr("source"), toConstXmlCharPtr(source)); diff --git a/src/sed/sedmodel_p.h b/src/sed/sedmodel_p.h index 0b8631e7b..5e7b9e410 100644 --- a/src/sed/sedmodel_p.h +++ b/src/sed/sedmodel_p.h @@ -25,6 +25,7 @@ namespace libOpenCOR { class SedModel::Impl: public SedBase::Impl { public: + std::string mBasePath; FilePtr mFile; explicit Impl(const SedDocumentPtr &pDocument, const FilePtr &pFile); @@ -33,13 +34,8 @@ class SedModel::Impl: public SedBase::Impl bool isValid(); -#ifdef BUILDING_USING_CLANG - // Prevent Clang from complaining about SedModel::Impl::serialise() hiding SedBase::Impl::serialise(). - - using SedBase::Impl::serialise; -#endif - - void serialise(xmlNodePtr pNode, const std::string &pBasePath) const; + void setBasePath(const std::string &pBasePath); + void serialise(xmlNodePtr pNode) const override; }; } // namespace libOpenCOR diff --git a/tests/api/version/tests.cpp b/tests/api/version/tests.cpp index ec7948c5b..9cc7d43d6 100644 --- a/tests/api/version/tests.cpp +++ b/tests/api/version/tests.cpp @@ -26,8 +26,8 @@ TEST(VersionTest, libOpenCOR) TEST(VersionTest, Clang) { - EXPECT_EQ(0x180108U, libOpenCOR::clangVersion()); - EXPECT_EQ("18.1.8", libOpenCOR::clangVersionString()); + EXPECT_EQ(0x140006U, libOpenCOR::clangVersion()); + EXPECT_EQ("14.0.6", libOpenCOR::clangVersionString()); } TEST(VersionTest, libCellML) @@ -56,8 +56,8 @@ TEST(VersionTest, libSEDML) TEST(VersionTest, LLVM) { - EXPECT_EQ(0x180108U, libOpenCOR::llvmVersion()); - EXPECT_EQ("18.1.8", libOpenCOR::llvmVersionString()); + EXPECT_EQ(0x140006U, libOpenCOR::llvmVersion()); + EXPECT_EQ("14.0.6", libOpenCOR::llvmVersionString()); } TEST(VersionTest, SUNDIALS) diff --git a/tests/bindings/python/test_version.py b/tests/bindings/python/test_version.py index 58ac9a695..9606689eb 100644 --- a/tests/bindings/python/test_version.py +++ b/tests/bindings/python/test_version.py @@ -30,12 +30,12 @@ def test_version_string(): def test_clang_version(): assert isinstance(oc.clang_version(), int) - assert oc.clang_version() == 0x180108 + assert oc.clang_version() == 0x140006 def test_clang_version_string(): assert isinstance(oc.clang_version_string(), str) - assert oc.clang_version_string() == "18.1.8" + assert oc.clang_version_string() == "14.0.6" def test_libcellml_version(): @@ -80,12 +80,12 @@ def test_libsedml_version_string(): def test_llvm_version(): assert isinstance(oc.llvm_version(), int) - assert oc.llvm_version() == 0x180108 + assert oc.llvm_version() == 0x140006 def test_llvm_version_string(): assert isinstance(oc.llvm_version_string(), str) - assert oc.llvm_version_string() == "18.1.8" + assert oc.llvm_version_string() == "14.0.6" def test_sundials_version(): diff --git a/tests/misc/compiler/tests.cpp b/tests/misc/compiler/tests.cpp index 09f9b7620..81aedc091 100644 --- a/tests/misc/compiler/tests.cpp +++ b/tests/misc/compiler/tests.cpp @@ -39,7 +39,7 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_01 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected identifier or '(':\n 38 | void\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected identifier or '(':\nvoid\n ^"}, }; EXPECT_FALSE(mCompiler->compile("void")); @@ -49,8 +49,8 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_02 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Variable has incomplete type 'void':\n 38 | void function\n | ^"}, - {libOpenCOR::Issue::Type::ERROR, "Expected ';' after top level declarator:\n 38 | void function\n | ^\n | ;"}, + {libOpenCOR::Issue::Type::ERROR, "Variable has incomplete type 'void':\nvoid function\n ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected ';' after top level declarator:\nvoid function\n ^\n ;"}, }; EXPECT_FALSE(mCompiler->compile("void function")); @@ -60,9 +60,9 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_03 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected parameter declarator:\n 38 | void function(\n | ^"}, - {libOpenCOR::Issue::Type::ERROR, "Expected ')' to match this '(':\n 38 | void function(\n | ^"}, - {libOpenCOR::Issue::Type::ERROR, "Expected function body after function declarator:\n 38 | void function(\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected parameter declarator:\nvoid function(\n ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected ')' to match this '(':\nvoid function(\n ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected function body after function declarator:\nvoid function(\n ^"}, }; EXPECT_FALSE(mCompiler->compile("void function(")); @@ -72,7 +72,7 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_04 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected function body after function declarator:\n 38 | void function()\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected function body after function declarator:\nvoid function()\n ^"}, }; EXPECT_FALSE(mCompiler->compile("void function()")); @@ -82,7 +82,7 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_05 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected '}':\n 38 | void function() {\n | ^\nto match this '{':\n 38 | void function() {\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected '}':\nvoid function() {\n ^\nto match this '{':\nvoid function() {\n ^"}, }; EXPECT_FALSE(mCompiler->compile("void function() {")); @@ -101,7 +101,7 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_06 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Non-void function does not return a value:\n 38 | double function() {}\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Non-void function does not return a value:\ndouble function() {}\n ^"}, }; EXPECT_FALSE(mCompiler->compile("double function() {}")); @@ -111,8 +111,8 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_07 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected expression:\n 38 | double function() { return\n | ^"}, - {libOpenCOR::Issue::Type::ERROR, "Expected '}' to match this '{':\n 38 | double function() { return\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected expression:\ndouble function() { return\n ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected '}' to match this '{':\ndouble function() { return\n ^"}, }; EXPECT_FALSE(mCompiler->compile("double function() { return")); @@ -122,8 +122,8 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_08 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected ';' after return statement:\n 38 | double function() { return 3.0\n | ^\n | ;"}, - {libOpenCOR::Issue::Type::ERROR, "Expected '}' to match this '{':\n 38 | double function() { return 3.0\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected ';' after return statement:\ndouble function() { return 3.0\n ^\n ;"}, + {libOpenCOR::Issue::Type::ERROR, "Expected '}' to match this '{':\ndouble function() { return 3.0\n ^"}, }; EXPECT_FALSE(mCompiler->compile("double function() { return 3.0")); @@ -133,7 +133,7 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_09 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected '}':\n 38 | double function() { return 3.0;\n | ^\nto match this '{':\n 38 | double function() { return 3.0;\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected '}':\ndouble function() { return 3.0;\n ^\nto match this '{':\ndouble function() { return 3.0;\n ^"}, }; EXPECT_FALSE(mCompiler->compile("double function() { return 3.0;")); @@ -149,7 +149,7 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_10 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected identifier or '(':\n 38 | double .function() { return 3.0; }\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected identifier or '(':\ndouble .function() { return 3.0; }\n ^"}, }; EXPECT_FALSE(mCompiler->compile("double .function() { return 3.0; }")); @@ -159,8 +159,8 @@ TEST_F(CompilerTest, basic) static const libOpenCOR::ExpectedIssues EXPECTED_ISSUES_11 = { {libOpenCOR::Issue::Type::ERROR, "The given code could not be compiled."}, - {libOpenCOR::Issue::Type::ERROR, "Expected expression:\n 38 | double function() { return 3.0+*-/a; }\n | ^"}, - {libOpenCOR::Issue::Type::ERROR, "Use of undeclared identifier 'a':\n 38 | double function() { return 3.0+*-/a; }\n | ^"}, + {libOpenCOR::Issue::Type::ERROR, "Expected expression:\ndouble function() { return 3.0+*-/a; }\n ^"}, + {libOpenCOR::Issue::Type::ERROR, "Use of undeclared identifier 'a':\ndouble function() { return 3.0+*-/a; }\n ^"}, }; EXPECT_FALSE(mCompiler->compile("double function() { return 3.0+*-/a; }"));