#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#
# SIS project file for NetBeans.
#
application.title    = Spatial Information System (SIS)
application.vendor   = Apache
application.homepage = https://sis.apache.org/
application.desc     = Apache SIS is a free software, Java language library for developing geospatial applications.
project.license      = apache20
project.licensePath  = ../HEADER
work.dir             = ${build.dir}
source.encoding      = UTF-8
javac.source         = 22
javac.target         = 22
platform.active      = default_platform
junit.forkmode       = once
module.name          = org.apache.sis.gui
main.class           = org.apache.sis.gui.DataViewer
javac.compilerargs   = ${test.options} \
                       -Xlint:all -Xdoclint:syntax,html,reference,missing/protected,accessibility/protected
run.jvmargs          = ${test.options} ${read.options} -enableassertions \
                       -Djava.util.logging.config.file=../parent/logging.properties \
                       -Dorg.apache.sis.test.extensive=true \
                       -Dorg.apache.sis.test.verbose=true

#
# Source directories relative to this "netbeans" directory.
# The `src.dir` and `test.src.dir` properties could be named `endorsed.main.dir`
# and `endorsed.test.dir` for consistency with other properties, but the property
# names seem to be hard-coded in some places in NetBeans generated `build-impl`.
#
src.dir                 = ../endorsed/src
test.src.dir            = ../endorsed/src
optional.main.dir       = ../optional/src
optional.test.dir       = ../optional/src
src.dir.path            = main
test.src.dir.path       = test
optional.main.dir.path  = main
optional.test.dir.path  = test
includes     = **
excludes     =
modules.list = org.apache.sis.cloud.aws,\
               org.apache.sis.console,\
               org.apache.sis.feature,\
               org.apache.sis.gui,\
               org.apache.sis.metadata,\
               org.apache.sis.openoffice,\
               org.apache.sis.portrayal,\
               org.apache.sis.profile.france,\
               org.apache.sis.profile.japan,\
               org.apache.sis.referencing,\
               org.apache.sis.referencing.gazetteer,\
               org.apache.sis.referencing.epsg,\
               org.apache.sis.referencing.database,\
               org.apache.sis.storage,\
               org.apache.sis.storage.earthobservation,\
               org.apache.sis.storage.geotiff,\
               org.apache.sis.storage.netcdf,\
               org.apache.sis.storage.sql,\
               org.apache.sis.storage.xml,\
               org.apache.sis.util
read.options = --add-reads org.apache.sis.cloud.aws=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.console=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.feature=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.metadata=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.openoffice=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.portrayal=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.profile.france=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.profile.japan=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.referencing=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.referencing.gazetteer=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.referencing.epsg=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.referencing.database=org.apache.sis.referencing.epsg,org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.geoheif=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.gsf=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.gdal=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.geopackage=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.coveragejson=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.earthobservation=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.geotiff=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.netcdf=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.sql=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.storage.xml=org.junit.jupiter.api,junit \
               --add-reads org.apache.sis.util=org.junit.jupiter.api,junit
test.options = --add-modules jama,GeographicLib.Java,\
                 com.h2database,\
                 org.hsqldb,\
                 org.apache.derby.tools,\
                 software.amazon.awssdk.utils,\
                 org.opengis.geoapi.conformance,\
                 org.junit.jupiter.api,\
                 ${modules.list} \
               --add-exports org.apache.sis.util/org.apache.sis.test=${modules.list} \
               --add-exports org.apache.sis.metadata/org.apache.sis.test.mock=${modules.list} \
               --add-exports org.apache.sis.metadata/org.apache.sis.metadata.xml=org.apache.sis.storage \
               --add-exports org.apache.sis.metadata/org.apache.sis.xml.test=${modules.list} \
               --add-exports org.apache.sis.metadata/org.apache.sis.xml.internal.shared=org.apache.sis.storage.geotiff \
               --add-exports org.apache.sis.metadata/org.apache.sis.xml.bind.gcx=org.apache.sis.referencing \
               --add-exports org.apache.sis.metadata/org.apache.sis.metadata.internal.shared=org.apache.sis.referencing.gazetteer \
               --add-exports org.apache.sis.metadata/org.apache.sis.metadata.sql.internal.shared=org.apache.sis.referencing.epsg \
               --add-exports org.apache.sis.referencing/org.apache.sis.referencing.internal=org.apache.sis.openoffice \
               --add-exports org.apache.sis.feature/org.apache.sis.feature.internal.shared=org.apache.sis.storage.sql \
               --add-exports org.apache.sis.feature/org.apache.sis.geometry.wrapper.jts=org.apache.sis.storage.sql \
               --add-exports org.apache.sis.feature/org.apache.sis.geometry.wrapper=org.apache.sis.storage.geopackage \
               --add-exports org.apache.sis.storage/org.apache.sis.storage.test=${modules.list}

#
# Modulepaths for compilation, execution and tests.
# All dependencies except GeoAPI are downloaded by Ivy.
#
maven.repository = ${user.home}/.m2/repository
endorsed.classpath=
javac.classpath=
javac.modulepath=${javafx.module.path}:\
    ${build.dir}/dependencies
javac.processorpath=${javac.classpath}
javac.processormodulepath=
javac.test.classpath=${javac.classpath}
javac.test.modulepath=\
    ${javac.modulepath}:\
    ${build.modules.dir}
javac.test.processorpath=${javac.test.classpath}
run.classpath=
run.modulepath=\
    ${javac.modulepath}:\
    ${build.modules.dir}
run.test.classpath=${javac.test.classpath}
run.test.modulepath=\
    ${javac.test.modulepath}:\
    ${build.test.modules.dir}
debug.classpath=${run.classpath}
debug.modulepath=\
    ${run.modulepath}
debug.test.classpath=${run.test.classpath}
debug.test.modulepath=\
    ${run.test.modulepath}

#
# Build configuration and destination directories.
# The `compile.on.save` property must be `false` for enabling the use of "../build.xml" file.
#
do.jar                                   = true
do.jlink                                 = false
do.depend                                = false
compile.on.save                          = false
javac.debug                              = true
javac.deprecation                        = true
javac.external.vm                        = false
javadoc.preview                          = false
javadoc.windowtitle                      = Apache SIS
javadoc.encoding                         = ${source.encoding}
javadoc.html5                            = true
javadoc.author                           = false
javadoc.version                          = true
javadoc.use                              = true
javadoc.noindex                          = false
javadoc.nonavbar                         = false
javadoc.notree                           = false
javadoc.private                          = false
javadoc.splitindex                       = false
javadoc.additionalparam                  =
annotation.processing.enabled            = false
annotation.processing.enabled.in.editor  = false
annotation.processing.run.all.processors = true
annotation.processing.processors.list    =
annotation.processing.source.output      = ${build.generated.sources.dir}/ap-source-output
jlink.strip                              = false
jlink.launcher                           = false
jlink.launcher.name                      = Apache_SIS
jlink.additionalparam                    =
jlink.additionalmodules                  =
jar.compress                             = true
build.dir                                = build
build.classes.dir                        = ${build.dir}/classes
build.modules.dir                        = ${build.dir}/modules
build.generated.dir                      = ${build.dir}/generated
build.generated.sources.dir              = ${build.dir}/generated-sources
build.test.classes.dir                   = ${build.dir}/test/classes
build.test.modules.dir                   = ${build.dir}/test/modules
build.test.results.dir                   = ${build.dir}/test/results
build.classes.excludes                   = **/*
build.sysclasspath                       = ignore
dist.dir                                 = ${build.dir}/dist
dist.jar                                 = ${dist.dir}/SIS.jar
dist.jlink.dir                           = ${dist.dir}/jlink
dist.jlink.output                        = ${dist.jlink.dir}/SIS
dist.javadoc.dir                         = ${dist.dir}/javadoc
dist.archive.excludes                    =
mkdist.disabled                          = true
