diff --git a/define_unittest_vars.sh b/define_unittest_vars.sh index dd7e5f8..15b2a12 100755 --- a/define_unittest_vars.sh +++ b/define_unittest_vars.sh @@ -10,12 +10,11 @@ # "-w" suppresses all warnings # "-Wl,-no_compact_unwind" is for suppressing the silly "no compact unwind" # warnings from the clang linker. + if [[ $OSTYPE == darwin* ]] then CPP="g++ -w -Wl,-no_compact_unwind" CC=gcc -# CPP=g++-5 -# CC=gcc-5 else CPP="g++ -w" CC=gcc @@ -36,8 +35,25 @@ fi CXXTESTGEN=cxxtestgen +# Locations of external libraries (CFITSIO, FFTW3, GSL, NLopt) +# Figure out which type of macOS architecture we're running under + +# defaults for Linux and for x86-64 macOS +EXTERNAL_INCLUDE_PATH="/usr/local/include" +EXTERNAL_LIB_PATH="/usr/local/lib" +ARCH=$(uname -m) +# if we're running on an arm64 (Apple silicon) Mac, use Homebrew's arm64 location +if [[ $OSTYPE == darwin* ]] && [[ "$ARCH" -eq "arm64" ]] +then + EXTERNAL_INCLUDE_PATH="/opt/homebrew/include" + EXTERNAL_LIB_PATH="/opt/homebrew/lib" +fi + + export CPP export CC export CXXTEST export CXXTESTGEN export LDFLAGS +export EXTERNAL_INCLUDE_PATH +export EXTERNAL_LIB_PATH diff --git a/run_unit_tests.sh b/run_unit_tests.sh index 39f5495..e5a4aac 100755 --- a/run_unit_tests.sh +++ b/run_unit_tests.sh @@ -108,6 +108,11 @@ echo $RESULT RESULT+=$? echo $RESULT +# Unit tests for psf_interpolators +./run_unittest_psf_interpolators.sh +RESULT+=$? +echo $RESULT + # NOTE: the following code will correctly set up and run unittest_oversampled_region.t.h; # However, that "unit test" doesn't perform proper tests; instead, it generates test image # output meant to be inspected with DS9. Therefore, it is currently commented out. diff --git a/run_unittest_add_functions.sh b/run_unittest_add_functions.sh index 6c41ba1..804ee2a 100755 --- a/run_unittest_add_functions.sh +++ b/run_unittest_add_functions.sh @@ -34,8 +34,8 @@ function_objects/func_pointsource-rot.cpp function_objects/func_peanut_dattathri function_objects/helper_funcs.cpp function_objects/helper_funcs_3d.cpp \ function_objects/psf_interpolators.cpp \ core/mersenne_twister.cpp core/mp_enorm.cpp \ --I. -Icore -Isolvers -I/usr/local/include -Ifunction_objects -I$CXXTEST -L/usr/local/lib \ --lfftw3_threads -lfftw3 -lcfitsio -lgsl -lgslcblas -lm +-I. -Icore -Isolvers -I$EXTERNAL_INCLUDE_PATH -Ifunction_objects -I$CXXTEST \ +-L$EXTERNAL_LIB_PATH -lfftw3_threads -lfftw3 -lcfitsio -lgsl -lgslcblas -lm if [ $? -eq 0 ] then echo "Running unit tests for add_functions:" diff --git a/run_unittest_commandlineparser.sh b/run_unittest_commandlineparser.sh index 03c54a8..6e612e0 100755 --- a/run_unittest_commandlineparser.sh +++ b/run_unittest_commandlineparser.sh @@ -13,7 +13,7 @@ echo "Generating and compiling unit tests for command-line parser..." $CXXTESTGEN --error-printer -o test_runner_cmparser.cpp unit_tests/unittest_commandline_parser.t.h $CPP -std=c++11 -Wno-write-strings -o test_runner_cmparser test_runner_cmparser.cpp \ core/commandline_parser.cpp core/utilities.cpp -I. -Icore -Isolvers -Ifunction_objects \ --I/usr/local/include -I$CXXTEST -L/usr/local/lib +-I$CXXTEST if [ $? -eq 0 ] then echo "Running unit tests for commandline_parser:" diff --git a/run_unittest_configfileparser.sh b/run_unittest_configfileparser.sh index 00d04cb..aecc4cc 100755 --- a/run_unittest_configfileparser.sh +++ b/run_unittest_configfileparser.sh @@ -12,7 +12,7 @@ echo echo "Generating and compiling unit tests for config-file parser..." $CXXTESTGEN --error-printer -o test_runner_config.cpp unit_tests/unittest_config_parser.t.h $CPP -std=c++11 -o test_runner_config test_runner_config.cpp core/config_file_parser.cpp \ -core/utilities.cpp -I. -Icore -Isolvers -Ifunction_objects -I/usr/local/include -I$CXXTEST +core/utilities.cpp -I. -Icore -Isolvers -Ifunction_objects -I$CXXTEST if [ $? -eq 0 ] then echo "Running unit tests for config_file_parser:" diff --git a/run_unittest_downsample.sh b/run_unittest_downsample.sh index 206520d..6005008 100755 --- a/run_unittest_downsample.sh +++ b/run_unittest_downsample.sh @@ -12,8 +12,8 @@ echo echo "Generating and compiling unit tests for downsample..." $CXXTESTGEN --error-printer -o test_runner_downsample.cpp unit_tests/unittest_downsample.t.h $CPP -std=c++11 -o test_runner_downsample test_runner_downsample.cpp core/downsample.cpp \ -core/image_io.cpp -I. -Icore -Isolvers -I/usr/local/include -I$CXXTEST \ --L/usr/local/lib -lcfitsio -lfftw3 -lm +core/image_io.cpp -I. -Icore -Isolvers -I$EXTERNAL_INCLUDE_PATH -I$CXXTEST \ +-L$EXTERNAL_LIB_PATH -lcfitsio -lfftw3 -lm if [ $? -eq 0 ] then echo "Running unit tests for downsample:" diff --git a/run_unittest_funcs.sh b/run_unittest_funcs.sh index a18b71c..f2f184d 100755 --- a/run_unittest_funcs.sh +++ b/run_unittest_funcs.sh @@ -23,8 +23,8 @@ function_objects/func_pointsource.cpp function_objects/psf_interpolators.cpp \ function_objects_1d/func1d_exp_test.cpp \ function_objects/helper_funcs.cpp function_objects/helper_funcs_3d.cpp \ function_objects/integrator.cpp core/utilities.cpp \ --I/usr/local/include -I$CXXTEST -I. -Icore -Isolvers -Ifunction_objects \ --L/usr/local/lib -lm -lgsl -lgslcblas +-I$EXTERNAL_INCLUDE_PATH -I$CXXTEST -I. -Icore -Isolvers -Ifunction_objects \ +-L$EXTERNAL_LIB_PATH -lm -lgsl -lgslcblas if [ $? -eq 0 ] then echo "Running unit tests for function objects:" diff --git a/run_unittest_getimages.sh b/run_unittest_getimages.sh index 232a57f..b7fe1bf 100755 --- a/run_unittest_getimages.sh +++ b/run_unittest_getimages.sh @@ -13,7 +13,7 @@ echo "Generating and compiling unit tests for getimages..." $CXXTESTGEN --error-printer -o test_runner_getimages.cpp unit_tests/unittest_getimages.t.h $CPP -std=c++11 -o test_runner_getimages test_runner_getimages.cpp \ core/getimages.cpp core/image_io.cpp core/psf_oversampling_info.cpp core/utilities.cpp \ --L/usr/local/lib -lcfitsio -lfftw3 -I. -I/usr/local/include -Icore -Isolvers \ +-L$EXTERNAL_LIB_PATH -lcfitsio -lfftw3 -I. -I$EXTERNAL_INCLUDE_PATH -Icore -Isolvers \ -Ifunction_objects -I$CXXTEST if [ $? -eq 0 ] then diff --git a/run_unittest_imageio.sh b/run_unittest_imageio.sh index 03b22a0..4b73447 100755 --- a/run_unittest_imageio.sh +++ b/run_unittest_imageio.sh @@ -12,7 +12,7 @@ echo echo "Generating and compiling unit tests for image_io..." $CXXTESTGEN --error-printer -o test_runner_imageio.cpp unit_tests/unittest_image_io.t.h $CPP -std=c++11 -o test_runner_imageio test_runner_imageio.cpp core/image_io.cpp -I. \ --I/usr/local/include -Icore -I$CXXTEST -L/usr/local/lib -lcfitsio -lfftw3 +-I$EXTERNAL_INCLUDE_PATH -Icore -I$CXXTEST -L$EXTERNAL_LIB_PATH -lcfitsio -lfftw3 if [ $? -eq 0 ] then echo "Running unit tests for image_io:" diff --git a/run_unittest_model_object.sh b/run_unittest_model_object.sh index 9e23ddd..f8f8846 100755 --- a/run_unittest_model_object.sh +++ b/run_unittest_model_object.sh @@ -44,8 +44,8 @@ function_objects/func_pointsource.cpp function_objects/func_pointsource-rot.cpp function_objects/func_peanut_dattathri.cpp \ function_objects/helper_funcs.cpp function_objects/helper_funcs_3d.cpp \ function_objects/psf_interpolators.cpp \ --I. -Icore -Isolvers -I/usr/local/include -Ifunction_objects -I$CXXTEST \ --L/usr/local/lib -lfftw3_threads -lcfitsio -lfftw3 -lgsl -lgslcblas -lm +-I. -Icore -Isolvers -I$EXTERNAL_INCLUDE_PATH -Ifunction_objects -I$CXXTEST \ +-L$EXTERNAL_LIB_PATH -lfftw3_threads -lcfitsio -lfftw3 -lgsl -lgslcblas -lm if [ $? -eq 0 ] then echo "Running unit tests for model_object:" diff --git a/run_unittest_mpfit.sh b/run_unittest_mpfit.sh index d1fbf69..a867bbd 100755 --- a/run_unittest_mpfit.sh +++ b/run_unittest_mpfit.sh @@ -13,7 +13,7 @@ echo "Generating and compiling unit tests for mpfit..." $CXXTESTGEN --error-printer -o test_runner_mpfit.cpp unit_tests/unittest_mpfit.t.h $CPP -std=c++11 -o test_runner_mpfit test_runner_mpfit.cpp core/mp_enorm.cpp \ core/utilities.cpp solvers/mpfit.cpp -I. -Icore -Isolvers -Ifunction_objects \ --I/usr/local/include -I$CXXTEST +-I$CXXTEST if [ $? -eq 0 ] then echo "Running unit tests for mpfit:" diff --git a/run_unittest_options.sh b/run_unittest_options.sh index 4242e0e..9749a54 100755 --- a/run_unittest_options.sh +++ b/run_unittest_options.sh @@ -11,7 +11,8 @@ NC='\033[0m' # No Color echo echo "Generating and compiling unit tests for options_makeimage..." $CXXTESTGEN --error-printer -o test_runner_options.cpp unit_tests/unittest_options.t.h -$CPP -std=c++11 -o test_runner_options test_runner_options.cpp -I. -Icore -I/usr/local/include -I$CXXTEST +$CPP -std=c++11 -o test_runner_options test_runner_options.cpp -I. -Icore \ +-I$CXXTEST if [ $? -eq 0 ] then echo "Running unit tests for OptionsBase and derived classes:" diff --git a/run_unittest_psf_interpolators.sh b/run_unittest_psf_interpolators.sh index 0a79d54..e02769d 100755 --- a/run_unittest_psf_interpolators.sh +++ b/run_unittest_psf_interpolators.sh @@ -13,8 +13,8 @@ echo "Generating and compiling unit tests for PsfInterpolator classes..." $CXXTESTGEN --error-printer -o test_runner_funcs.cpp unit_tests/unittest_psf_interpolators.t.h $CPP -std=c++11 -o test_runner_funcs test_runner_funcs.cpp \ function_objects/psf_interpolators.cpp core/image_io.cpp \ --I/usr/local/include -I$CXXTEST -I. -Icore -Isolvers -Ifunction_objects \ --L/usr/local/lib -lm -lcfitsio -lfftw3 -lgsl -lgslcblas +-I$EXTERNAL_INCLUDE_PATH -I$CXXTEST -I. -Icore -Isolvers -Ifunction_objects \ +-L$EXTERNAL_LIB_PATH -lm -lcfitsio -lfftw3 -lgsl -lgslcblas if [ $? -eq 0 ] then echo "Running unit tests for PsfInterpolator classes:" diff --git a/run_unittest_psf_oversampling_info.sh b/run_unittest_psf_oversampling_info.sh index 07202b8..9e343ce 100755 --- a/run_unittest_psf_oversampling_info.sh +++ b/run_unittest_psf_oversampling_info.sh @@ -14,8 +14,8 @@ $CXXTESTGEN --error-printer -o test_runner_psf_oversampling_info.cpp \ unit_tests/unittest_psf_oversampling_info.t.h $CPP -std=c++11 -o test_runner_psf_oversampling_info \ test_runner_psf_oversampling_info.cpp core/psf_oversampling_info.cpp core/utilities.cpp \ --L/usr/local/lib -lfftw3 -I. -Icore -Isolvers -Ifunction_objects \ --I/usr/local/include -I$CXXTEST +-L$EXTERNAL_LIB_PATH -lfftw3 -I. -Icore -Isolvers -Ifunction_objects \ +-I$EXTERNAL_INCLUDE_PATH -I$CXXTEST if [ $? -eq 0 ] then echo "Running unit tests for psf_oversampling_info:" diff --git a/run_unittest_setup_model_object.sh b/run_unittest_setup_model_object.sh index 00d8da3..05433cb 100755 --- a/run_unittest_setup_model_object.sh +++ b/run_unittest_setup_model_object.sh @@ -16,8 +16,8 @@ $CPP -std=c++11 -o test_runner_setup_modelobj test_runner_setup_modelobj.cpp cor core/setup_model_object.cpp core/utilities.cpp core/convolver.cpp core/config_file_parser.cpp \ core/mersenne_twister.cpp core/mp_enorm.cpp core/oversampled_region.cpp core/downsample.cpp \ core/image_io.cpp core/psf_oversampling_info.cpp function_objects/psf_interpolators.cpp \ --I. -Icore -Isolvers -I/usr/local/include -Ifunction_objects -I$CXXTEST \ --L/usr/local/lib -lfftw3_threads -lcfitsio -lfftw3 -lgsl -lgslcblas -lm +-I. -Icore -Isolvers -I$EXTERNAL_INCLUDE_PATH -Ifunction_objects -I$CXXTEST \ +-L$EXTERNAL_LIB_PATH -lfftw3_threads -lcfitsio -lfftw3 -lgsl -lgslcblas -lm if [ $? -eq 0 ] then echo "Running unit tests for setup_model_object:" diff --git a/run_unittest_solverresults.sh b/run_unittest_solverresults.sh index 33d33e6..ed900d5 100755 --- a/run_unittest_solverresults.sh +++ b/run_unittest_solverresults.sh @@ -12,8 +12,7 @@ echo echo "Generating and compiling unit tests for solver_results..." $CXXTESTGEN --error-printer -o test_runner_solver_results.cpp unit_tests/unittest_solver_results.t.h $CPP -std=c++11 -o test_runner_solver_results test_runner_solver_results.cpp \ -solvers/solver_results.cpp -I. -Isolvers -Ifunction_objects -Icore \ --I/usr/local/include -I$CXXTEST +solvers/solver_results.cpp -I. -Isolvers -Ifunction_objects -Icore -I$CXXTEST if [ $? -eq 0 ] then echo "Running unit tests for solver_results:" diff --git a/run_unittest_utilities.sh b/run_unittest_utilities.sh index 2a6a94a..da8fb4b 100755 --- a/run_unittest_utilities.sh +++ b/run_unittest_utilities.sh @@ -12,7 +12,7 @@ echo echo "Generating and compiling unit tests for utilities..." $CXXTESTGEN --error-printer -o test_runner_utilities.cpp unit_tests/unittest_utilities.t.h $CPP -std=c++11 -o test_runner_utilities test_runner_utilities.cpp core/utilities.cpp \ --I. -Icore -Isolvers -Ifunction_objects -I/usr/local/include -I$CXXTEST +-I. -Icore -Isolvers -Ifunction_objects -I$CXXTEST if [ $? -eq 0 ] then echo "Running unit tests for utilities:"