macos cross compilation now works. macos binaries can be compiled on linux with osxcross installed and built
77 lines
2.3 KiB
Meson
77 lines
2.3 KiB
Meson
cmake = import('cmake')
|
|
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' : 'OFF',
|
|
'BUILD_STATIC_LIBS' : 'ON',
|
|
'EXAMPLES_ENABLE_C': 'OFF',
|
|
'CMAKE_POSITION_INDEPENDENT_CODE': true
|
|
|
|
})
|
|
|
|
cvode_cmake_options.add_cmake_defines({
|
|
'CMAKE_INSTALL_LIBDIR': get_option('libdir'),
|
|
'CMAKE_INSTALL_INCLUDEDIR': get_option('includedir')
|
|
})
|
|
|
|
cvode_sp = cmake.subproject(
|
|
'cvode',
|
|
options: cvode_cmake_options,
|
|
)
|
|
|
|
sundials_core_tgt = cvode_sp.target('sundials_core_static')
|
|
sundials_cvode_tgt = cvode_sp.target('sundials_cvode_static')
|
|
sundials_nvecserial_tgt = cvode_sp.target('sundials_nvecserial_static')
|
|
sundials_sunmatrixdense_tgt = cvode_sp.target('sundials_sunmatrixdense_static')
|
|
sundials_sunlinsoldense_tgt = cvode_sp.target('sundials_sunlinsoldense_static')
|
|
|
|
cvode_objs = [
|
|
sundials_core_tgt.extract_all_objects(recursive: true),
|
|
sundials_cvode_tgt.extract_all_objects(recursive: true),
|
|
sundials_nvecserial_tgt.extract_all_objects(recursive: true),
|
|
sundials_sunmatrixdense_tgt.extract_all_objects(recursive: true),
|
|
sundials_sunlinsoldense_tgt.extract_all_objects(recursive: true),
|
|
]
|
|
|
|
sundials_core_includes = cvode_sp.include_directories('sundials_core_static')
|
|
sundials_cvode_includes = cvode_sp.include_directories('sundials_cvode_static')
|
|
sundials_nvecserial_includes = cvode_sp.include_directories('sundials_nvecserial_static')
|
|
sundials_sunmatrixdense_includes = cvode_sp.include_directories('sundials_sunmatrixdense_static')
|
|
sundials_sunlinsoldense_includes = cvode_sp.include_directories('sundials_sunlinsoldense_static')
|
|
|
|
cvode_includes = [
|
|
sundials_core_includes,
|
|
sundials_cvode_includes,
|
|
sundials_nvecserial_includes,
|
|
sundials_sunmatrixdense_includes,
|
|
sundials_sunlinsoldense_includes
|
|
]
|
|
|
|
|
|
empty_cvode_file = configure_file(
|
|
output: 'cvode_dummy_ar.cpp',
|
|
command: ['echo'],
|
|
capture: true
|
|
)
|
|
|
|
|
|
|
|
libcvode_static = static_library(
|
|
'cvode-static',
|
|
empty_cvode_file,
|
|
objects: cvode_objs,
|
|
include_directories: cvode_includes,
|
|
pic: true,
|
|
install: false
|
|
)
|
|
|
|
|
|
cvode_dep = declare_dependency(
|
|
link_with: libcvode_static,
|
|
include_directories: cvode_includes,
|
|
)
|
|
|
|
|