Commit Graph

27 Commits

Author SHA1 Message Date
jpekkila
d8d0032972 Updated CMakeLists.txt with the correct dependencies 2019-10-07 15:43:46 +03:00
jpekkila
adee6b0097 Added the new utility library as a build option 2019-10-01 15:22:25 +03:00
jpekkila
72af2cf31d acc is now built with cmake instead of the old build script. This was mainly done to fix compilation on Puhti where I had problems linking flex even though it is available. As an added bonus the code is now safer to build since all dependencies are now rigorously tracked by cmake and make, and f.ex. change in the compiler now forces also the whole library to be rebuilt (which is the behaviour we want) 2019-09-24 16:57:19 +03:00
jpekkila
24f46324e0 Deprecated the old style of selecting a config file (was a compile-time parameter). The config file is now a runtime parameter and can be changed without recompilation. Usage: ./ac_run -s <path/to/config/file/relative/to/ac_run/path>. config/astaroth.conf is selected by default if the custom path is not supplied to ac_run. 2019-09-18 19:22:15 +03:00
jpekkila
3bb6ca1712 The Astaroth Code Compiler (acc) is now built with cmake. Additionally, make is now used to generate the CUDA headers from DSL sources. The headers are also properly regenerated whenever a DSL file has been changed. With this commit, the DSL is now seamlessly integrated to the library and we no longer need complicated scripts to figure out the correct files. The current workflow for using custom DSL sources is to pass the DSL module directory to cmake, f.ex. cmake -DDSL_MODULE_DIR=/acc/mhd_solver. Note that the path must be absolute or then given relative to the CMakeLists.txt directory. f.ex cd build && cmake -DDSL_MODULE_DIR=../acc/mhd_solver does not work. CMake then takes all DSL files in that directory and handles the rest. 2019-09-18 17:28:29 +03:00
jpekkila
eefd60983a 3rd party dependencies do not have to be fetched manually any more, cmake make will do that automatically if needed 2019-09-18 09:06:03 +03:00
jpekkila
4ce51ea60e Now the generated CUDA header files are completely local (placed in the build directory) instead of depending on some predefined directory structure. This allows users to swap between build directories without having to recompile. 2019-09-12 20:11:21 +03:00
jpekkila
da76fca0dc Added a test for building an MPI project. Building for the MPI and C API tests is now also disabled by default. 2019-08-05 18:30:48 +03:00
jpekkila
d614a03653 Made CMake to use the default compiler on system PATH. If the generic compiler names (cc, c++) point to some old version, then cmake would otherwise use those instead of the latest available compiler. 2019-07-29 16:07:31 +03:00
jpekkila
c9fafe41e5 Tidied the CMakeLists, moved stuff to more logical places and added comments. Also tested that ALTER_CONF=ON still works 2019-07-26 15:12:55 +03:00
jpekkila
b90d261e89 Removed an unnecessary include from the root CMakeLists.txt 2019-07-26 14:18:11 +03:00
jpekkila
f0d1fba55c The pure C test works again. 2019-07-23 21:00:00 +03:00
jpekkila
f322bc8b37 Rewrote all CMakeLists. Now much cleaner and there's a clear separation during compilation between the core and standalone modules. 2019-07-23 20:50:37 +03:00
jpekkila
b65454d523 Stashed some testing files used to make sure that the library can also be used from pure C projects (better compatibility). These changes will never go to master as-is. 2019-07-23 18:24:47 +03:00
jpekkila
eb589def71 Added some additional warning flags for gcc. Disabled them by default until I get the new warnings fixed. 2019-07-18 08:34:52 +03:00
jpekkila
c71711ec36 Disabled real-time visualization by default. SDL2 is no longer a dependency when building with the default flags. 2019-07-04 22:30:26 +03:00
jpekkila
24f49ce461 Host code now compiled according to the C++11 standard. The device code has used C++11 for a while now and it's good to use a single standard consistently throughout the project. Old Intel compilers (~14.0) do not seem to support C++11 but the code should still compile since the flag is ignored in that case. 2019-07-04 16:01:02 +03:00
jpekkila
317df4c025 Re-enabled the check for implicit float-double-float conversions with gcc 2019-07-04 13:45:09 +03:00
jpekkila
edafe5a563 Made the gcc version check more lenient 2019-07-04 13:43:49 +03:00
Miikka Vaisala
ce54499351 Removed an accidental '\' 2019-07-04 14:11:26 +08:00
Miikka Vaisala
2c4d129216 -Werror-all disabled from Intel compiler flags
Because produces cryptical messages preventing compilation. The messages do not
tell anything about the problem and are also at odds with some gcc specific
pragma commands. If we can resolve these issues, we can turn it back.
2019-07-04 11:25:04 +08:00
jpekkila
e8a5579b50 Made the gcc error flags more lenient temporarily since there are so many float-double-float conversion errors in host_forcing.cc 2019-07-03 17:25:26 +03:00
jpekkila
25d4b9a0cd Added compilation warning flags for the Intel compiler. 2019-07-03 16:54:51 +03:00
jpekkila
d4968d0583 Made the gcc warning flags stricter 2019-07-03 16:38:31 +03:00
jpekkila
6bfc5f04f7 Added tighter bounds for gcc and nvcc versions. There was a bit of an chicken-and-egg issue: we need gcc 6.0 in order to get bug 48891 (see gcc bugzilla) fixed, but cuda < 9 supports gcc only up to 5.3. This is not a perfect solution, f.ex. ubuntu 16.04 ships with gcc 5.4 but with the fix backported from later versions so in practice that would also work but is not accepted anymore. 2019-06-26 13:33:03 +03:00
jpekkila
4ee772cf5d Set the minimum gcc version required in CMakeLists.txt 2019-06-19 16:57:47 +03:00
jpekkila
0e48766a68 Added Astaroth 2.0 2019-06-14 14:19:07 +03:00