build(cross): macOS cross compilation

macos cross compilation now works. macos binaries can be compiled on
linux with osxcross installed and built
This commit is contained in:
Emily Boudreaux
2025-12-01 13:28:25 -05:00
parent e260c7b02c
commit e0a05bbd1a
15 changed files with 264 additions and 44 deletions

View File

@@ -7,9 +7,8 @@ kinsol_cmake_options.add_cmake_defines({
'CMAKE_C_FLAGS' : '-Wno-deprecated-declarations',
'BUILD_SHARED_LIBS' : 'OFF',
'BUILD_STATIC_LIBS' : 'ON',
'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON',
'EXAMPLES_ENABLE_C' : 'OFF',
'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'
'CMAKE_POSITION_INDEPENDENT_CODE': true
})
kinsol_cmake_options.add_cmake_defines({
@@ -22,11 +21,31 @@ kinsol_sp = cmake.subproject(
options: kinsol_cmake_options,
)
sundials_kinsol_shared = kinsol_sp.dependency('sundials_kinsol_static')
sundials_kinsol_static_tgt = kinsol_sp.target('sundials_kinsol_obj_static')
kinsol_includes = kinsol_sp.include_directories('sundials_kinsol_obj_static')
kinsol_dep = declare_dependency(
dependencies: [
sundials_kinsol_shared,
]
kinsol_objs = [sundials_kinsol_static_tgt.extract_all_objects(recursive: false)]
empty_kinsol_file = configure_file(
output: 'kinsol_dummy_ar.cpp',
command: ['echo'],
capture: true
)
libkinsol_static = static_library(
'kinsol_static',
empty_kinsol_file,
objects: kinsol_objs,
include_directories: kinsol_includes,
pic: true,
install: false
)
kinsol_dep = declare_dependency(
link_with: libkinsol_static,
include_directories: kinsol_includes
)