Please use the tarball containing the latest released version of the source code, located at: https://oss.deltares.nl/en/web/delft3dfm/get-started#Download%20source%20code See section "Workflow" below in case you want to contribute to the source code.
About compiling https://github.com/Deltares/Delft3D
- build.bat from an Intel oneAPI command prompt for Intel 64 for Visual Studio 2022. Execute "build.bat -help" to show the usage.
- Open the generated solution from the command prompt to ensure that the intel environment is inherited by visual studio. For example: "devenv build_fm-suite\fm-suite.sln"
- Build from visual studio, or alternatively, use the command line to run "cmake --build build_fm-suite --config Debug" "cmake --install build_fm-suite --config Debug"
- build.sh Execute "./build.sh --help" to show the usage Currently used as default build process: "./build.sh fm-suite --compiler intel21" This will execute "src/setenv.sh" on Deltares systems. On other systems, the environment must be prepared upfront. For instructions, see Setup your own Linux environment.
See ...\src\cmake\README WARNING: When building without build-script, the collection of the resulting binaries will need attention
- Delft3D FM suite: https://oss.deltares.nl/web/delft3dfm/get-started
- Delft3D 4 suite: https://oss.deltares.nl/web/delft3d/get-started
Note: in this section: Replace "..." by the actual path on your system to the checkout directory.
- Use build.bat to prepare the "fm-suite" configuration
- Open "...\build_fm-suite\fm-suite.sln" in VisualStudio and build the complete release version Directory "...\build_fm-suite\x64\Release\share\bin" will be created
- Build the debug versie of what you need (e.g. dimr and dflowfm, waq, wave)
- dimr project -> Set as Startup Project
- dimr project -> properties -> Debugging: -> Command Arguments: dimr_config.xml -> Working Directory: ...\examples\12_dflowfm\test_data\e100_f02_c02-FriesianInlet_schematic_FM -> Environment: PATH=...\build_fm-suite\x64\Debug;%PATH%;...\fm-suite\x64\Release\share\bin
- Request for access on https://github.com/Deltares/Delft3D
- Create an issue in https://issuetracker.deltares.nl If an issue is not created, you have to create a branch of type research
- Clone the repository
- Create a branch using the naming convention below The frequency of updating your branch from main is up to personal taste. Yet, merge from main as often as possible, and merge back to main as early as possible.
- Create a MergeRequest (not for research branches):
- TeamCity projects will be triggered to build the source code (Windows and Linux). Continuation is only possible when it succeeds. This will take at least 30 minutes.
- A small set of QuickTests will be triggered on TeamCity. Continuation is only possible when it succeeds. This will take at least 30 minutes.
- You have to assign the MergeRequest to a core developer for reviewing and testing. When succeeded, the tester/reviewer is allowed to merge into trunk.
- Official binary deliveries are only allowed using Deltares TeamCity server
<kernel>/<type>/<ISSUENR>_short_description with:
- <kernel> : one of: all, d3d4, fm, none, part, rr, swan, waq, wave, tc -> Use all/none/<specific> to trigger all/none/specific tests -> Not needed for type <research>.
- <type> : one of: bugfix, doc, feature, poc, release, research, task -> Use <research> for branches that will not be merged into trunk directly.
- <ISSUENR> : JIRA issue number -> Not needed for type <research>.
Examples:
- fm/feature/UNST-1234_improve_partition_file
- research/improve_flow_scheme
After building the source code, you can run the unit tests with ctest.
You can do this by running ctest in the build directory. Be sure to pass the "config"
(Debug/Release) with the -C|--build-config argument.
cd build_fm-suite
ctest --build-config Debug
Or...
ctest --test-dir build_fm-suite --build-config Debug
ctest allows you to customize which tests you want to run or exclude, and supports
options for customizing the output. For instance, you can use the --output-junit option
to write the test results to an XML file, which is recognized by many tools that process
test results. Use ctest --help for an overview of the options.
For more details about the unit testing utilities in cmake, see Fortran Unit Testing.