From b06b622c0671b8495e85e624f33798cf040e94ff Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Mon, 1 Dec 2025 09:59:22 -0500 Subject: [PATCH] build(cross): working on cross compilation We want to be able to build all targets on one machine, began implimenting cross compilation --- build-config/sundials/cvode/meson.build | 17 ++++++++++------- build-config/sundials/kinsol/meson.build | 9 ++++++--- cross/macos_arm64.ini | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 cross/macos_arm64.ini diff --git a/build-config/sundials/cvode/meson.build b/build-config/sundials/cvode/meson.build index cc382cb8..b46397f6 100644 --- a/build-config/sundials/cvode/meson.build +++ b/build-config/sundials/cvode/meson.build @@ -4,8 +4,11 @@ cvode_cmake_options = cmake.subproject_options() cvode_cmake_options.add_cmake_defines({ 'CMAKE_CXX_FLAGS' : '-Wno-deprecated-declarations', 'CMAKE_C_FLAGS' : '-Wno-deprecated-declarations', - 'BUILD_SHARED_LIBS' : 'ON', - 'BUILD_STATIC_LIBS' : 'OFF', + 'BUILD_SHARED_LIBS' : 'OFF', + 'BUILD_STATIC_LIBS' : 'ON', + 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', + 'EXAMPLES_ENABLE_C': 'OFF', + 'CMAKE_POSITION_INDEPENDENT_CODE': 'ON' }) @@ -20,19 +23,19 @@ cvode_sp = cmake.subproject( ) # For the core SUNDIALS library (SUNContext, etc.) -sundials_core_dep = cvode_sp.dependency('sundials_core_shared') +sundials_core_dep = cvode_sp.dependency('sundials_core_static') # For the CVODE integrator library -sundials_cvode_dep = cvode_sp.dependency('sundials_cvode_shared') +sundials_cvode_dep = cvode_sp.dependency('sundials_cvode_static') # For the serial NVector library -sundials_nvecserial_dep = cvode_sp.dependency('sundials_nvecserial_shared') +sundials_nvecserial_dep = cvode_sp.dependency('sundials_nvecserial_static') # For the dense matrix library -sundials_sunmatrixdense_dep = cvode_sp.dependency('sundials_sunmatrixdense_shared') +sundials_sunmatrixdense_dep = cvode_sp.dependency('sundials_sunmatrixdense_static') # For the dense linear solver library -sundials_sunlinsoldense_dep = cvode_sp.dependency('sundials_sunlinsoldense_shared') +sundials_sunlinsoldense_dep = cvode_sp.dependency('sundials_sunlinsoldense_static') cvode_dep = declare_dependency( dependencies: [ diff --git a/build-config/sundials/kinsol/meson.build b/build-config/sundials/kinsol/meson.build index 3c780841..9014a5f6 100644 --- a/build-config/sundials/kinsol/meson.build +++ b/build-config/sundials/kinsol/meson.build @@ -5,8 +5,11 @@ kinsol_cmake_options = cmake.subproject_options() kinsol_cmake_options.add_cmake_defines({ 'CMAKE_CXX_FLAGS' : '-Wno-deprecated-declarations', 'CMAKE_C_FLAGS' : '-Wno-deprecated-declarations', - 'BUILD_SHARED_LIBS' : 'ON', - 'BUILD_STATIC_LIBS' : 'OFF', + 'BUILD_SHARED_LIBS' : 'OFF', + 'BUILD_STATIC_LIBS' : 'ON', + 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', + 'EXAMPLES_ENABLE_C' : 'OFF', + 'CMAKE_POSITION_INDEPENDENT_CODE': 'ON' }) kinsol_cmake_options.add_cmake_defines({ @@ -19,7 +22,7 @@ kinsol_sp = cmake.subproject( options: kinsol_cmake_options, ) -sundials_kinsol_shared = kinsol_sp.dependency('sundials_kinsol_shared') +sundials_kinsol_shared = kinsol_sp.dependency('sundials_kinsol_static') kinsol_dep = declare_dependency( dependencies: [ diff --git a/cross/macos_arm64.ini b/cross/macos_arm64.ini new file mode 100644 index 00000000..33ea5f99 --- /dev/null +++ b/cross/macos_arm64.ini @@ -0,0 +1,16 @@ +[binaries] +c = 'arm64-apple-darwin25-clang' +cpp = 'arm64-apple-darwin25-clang++' +ar = 'arm64-apple-darwin25-ar' +strip = 'arm64-apple-darwin25-strip' +pkg-config = 'pkg-config' + +[host-machine] +system = 'darwin' +cpu_family = 'aarch64' +cpi = 'arm64' +endian = 'little' + +[built-in options] +c_args = ['-mmacosx-version-min=15.0'] +cpp_args = ['-mmacos-version-min=15.0']