Compare commits

..

2 Commits

Author SHA1 Message Date
Emily Boudreaux
e260c7b02c fix(build): fortran
Fortran language only added if build-fortran enabled
2025-12-01 09:59:43 -05:00
Emily Boudreaux
b06b622c06 build(cross): working on cross compilation
We want to be able to build all targets on one machine, began
implimenting cross compilation
2025-12-01 09:59:22 -05:00
4 changed files with 35 additions and 13 deletions

View File

@@ -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: [

View File

@@ -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: [

16
cross/macos_arm64.ini Normal file
View File

@@ -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']

View File

@@ -18,7 +18,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# *********************************************************************** #
project('GridFire', ['c', 'cpp', 'fortran'], version: 'v0.7.4_rc2', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
project('GridFire', ['c', 'cpp'], version: 'v0.7.4_rc2', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
if get_option('build-python')
add_project_arguments('-fvisibility=hidden', language: 'cpp')
@@ -27,9 +27,7 @@ else
endif
message('Found CXX compiler: ' + meson.get_compiler('cpp').get_id())
message('Found FORTRAN compiler: ' + meson.get_compiler('fortran').get_id())
message('C++ standard set to: ' + get_option('cpp_std'))
message('Fortran standard set to: ' + get_option('fortran_std'))
cppc = meson.get_compiler('cpp')
@@ -51,6 +49,8 @@ endif
build_fortran = get_option('build-fortran')
if (build_fortran)
add_languages('fortran', native: true)
message('Found FORTRAN compiler: ' + meson.get_compiler('fortran').get_id())
message('Fortran standard set to: ' + get_option('fortran_std'))
message('Building fortran module (gridfire_mod.mod)')
fc = meson.get_compiler('fortran')
if not get_option('unsafe-fortran')