Skip to content

Commit 15b5055

Browse files
authored
Fix FSPS submodule inclusion in sdist and add build check (#242)
* Fixing CI sdist build to include the submodule * Adding check to Cmake for submodule
1 parent ac0b1bf commit 15b5055

2 files changed

Lines changed: 60 additions & 54 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ jobs:
4848
steps:
4949
- uses: actions/checkout@v4
5050
with:
51+
submodules: true
5152
fetch-depth: 0
5253
- uses: actions/setup-python@v4
5354
with:

src/fsps/CMakeLists.txt

Lines changed: 59 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,79 @@
1+
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sps_vars.f90")
2+
message(FATAL_ERROR "The source code in the FSPS submodule was not found."
3+
"Please run 'git submodule update --init' to initialize the submodule.")
4+
endif()
5+
16
# Generate the f2py wrappers
27
set(F2PY_SOURCES
3-
"${CMAKE_CURRENT_BINARY_DIR}/_fspsmodule.c"
4-
"${CMAKE_CURRENT_BINARY_DIR}/_fsps-f2pywrappers2.f90"
8+
"${CMAKE_CURRENT_BINARY_DIR}/_fspsmodule.c"
9+
"${CMAKE_CURRENT_BINARY_DIR}/_fsps-f2pywrappers2.f90"
510
)
611
add_custom_command(
712
OUTPUT ${F2PY_SOURCES}
813
DEPENDS fsps.f90
914
VERBATIM
1015
COMMAND "${Python_EXECUTABLE}" -m numpy.f2py
11-
"${CMAKE_CURRENT_SOURCE_DIR}/fsps.f90" -m _fsps --lower
12-
--build-dir "${CMAKE_CURRENT_BINARY_DIR}")
16+
"${CMAKE_CURRENT_SOURCE_DIR}/fsps.f90" -m _fsps --lower
17+
--build-dir "${CMAKE_CURRENT_BINARY_DIR}")
1318

1419
# List out the explicit FSPS sources; we don't use a glob here since
1520
# the 'src' directory includes some executables that we don't want to
1621
# include here.
1722
set(
18-
FSPS_SOURCES
19-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sps_vars.f90"
20-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sps_utils.f90"
21-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_agb_dust.f90"
22-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_bs.f90"
23-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_dust.f90"
24-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_nebular.f90"
25-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_remnants.f90"
26-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_xrb.f90"
27-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/agn_dust.f90"
28-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/attn_curve.f90"
29-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/compsp.f90"
30-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/csp_gen.f90"
31-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/funcint.f90"
32-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/get_lumdist.f90"
33-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/get_tuniv.f90"
34-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/getindx.f90"
35-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/getmags.f90"
36-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/getspec.f90"
37-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/igm_absorb.f90"
38-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/imf.f90"
39-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/imf_weight.f90"
40-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/intsfwght.f90"
41-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/linterp.f90"
42-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/linterparr.f90"
43-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/locate.f90"
44-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/mod_gb.f90"
45-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/mod_hb.f90"
46-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/pz_convol.f90"
47-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sbf.f90"
48-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/setup_tabular_sfh.f90"
49-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfh_weight.f90"
50-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfhinfo.f90"
51-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfhlimit.f90"
52-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfhstat.f90"
53-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/smoothspec.f90"
54-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/spec_bin.f90"
55-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sps_setup.f90"
56-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/ssp_gen.f90"
57-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/tsum.f90"
58-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/vacairconv.f90"
59-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/write_isochrone.f90"
60-
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/ztinterp.f90"
23+
FSPS_SOURCES
24+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sps_vars.f90"
25+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sps_utils.f90"
26+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_agb_dust.f90"
27+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_bs.f90"
28+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_dust.f90"
29+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_nebular.f90"
30+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_remnants.f90"
31+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/add_xrb.f90"
32+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/agn_dust.f90"
33+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/attn_curve.f90"
34+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/compsp.f90"
35+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/csp_gen.f90"
36+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/funcint.f90"
37+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/get_lumdist.f90"
38+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/get_tuniv.f90"
39+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/getindx.f90"
40+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/getmags.f90"
41+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/getspec.f90"
42+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/igm_absorb.f90"
43+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/imf.f90"
44+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/imf_weight.f90"
45+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/intsfwght.f90"
46+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/linterp.f90"
47+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/linterparr.f90"
48+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/locate.f90"
49+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/mod_gb.f90"
50+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/mod_hb.f90"
51+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/pz_convol.f90"
52+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sbf.f90"
53+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/setup_tabular_sfh.f90"
54+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfh_weight.f90"
55+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfhinfo.f90"
56+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfhlimit.f90"
57+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sfhstat.f90"
58+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/smoothspec.f90"
59+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/spec_bin.f90"
60+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/sps_setup.f90"
61+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/ssp_gen.f90"
62+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/tsum.f90"
63+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/vacairconv.f90"
64+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/write_isochrone.f90"
65+
"${CMAKE_CURRENT_SOURCE_DIR}/libfsps/src/ztinterp.f90"
6166
)
6267

6368
# Define the Python library
6469
python_add_library(
65-
_fsps
66-
MODULE
67-
"${CMAKE_CURRENT_SOURCE_DIR}/fsps.f90"
68-
${FSPS_SOURCES}
69-
${F2PY_SOURCES}
70-
"${F2PY_INCLUDE_DIR}/fortranobject.c"
71-
WITH_SOABI)
70+
_fsps
71+
MODULE
72+
"${CMAKE_CURRENT_SOURCE_DIR}/fsps.f90"
73+
${FSPS_SOURCES}
74+
${F2PY_SOURCES}
75+
"${F2PY_INCLUDE_DIR}/fortranobject.c"
76+
WITH_SOABI)
7277
target_link_libraries(_fsps PUBLIC Python::NumPy)
7378
target_include_directories(_fsps PUBLIC "${F2PY_INCLUDE_DIR}")
7479
install(TARGETS _fsps DESTINATION ${SKBUILD_PROJECT_NAME})

0 commit comments

Comments
 (0)