# ***********************************************************************
#
#   Copyright (C) 2025 -- The 4D-STAR Collaboration
#   File Author: Emily Boudreaux
#   Last Modified: March 19, 2025
#
#   4DSSE is free software; you can use it and/or modify
#   it under the terms and restrictions the GNU General Library Public
#   License version 3 (GPLv3) as published by the Free Software Foundation.
#
#   4DSSE is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#   See the GNU Library General Public License for more details.
#
#   You should have received a copy of the GNU Library General Public License
#   along with this software; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# *********************************************************************** #
project('4DSSE', 'cpp', version: '0.0.1a', default_options: ['cpp_std=c++23'], meson_version: '>=1.6.0')

# Add default visibility for all C++ targets
add_project_arguments('-fvisibility=default', language: 'cpp')
# Determine the mode
mode = 1
if get_option('user_mode')
    mode = 0
endif

# Define DATA_DIR based on mode
if mode == 1
    data_dir = meson.project_source_root() + '/assets/dynamic'
else
    data_dir = get_option('prefix') + '/' + get_option('datadir') + '/4DSSE'
endif

# Pass the DATA_DIR definition to the compiler
add_project_arguments('-DDATA_DIR=' + data_dir, language : 'cpp')

# Build external dependencies first so that all the embedded resources are available to the other targets
subdir('build-config')

subdir('assets/static')

# Build the main project
subdir('src')
if get_option('build_tests')
    subdir('tests')
endif

# Build the utilities
subdir('utils')
