diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 393b2fa34667b79ac406c85b657b3138e560fd40..d7cab9508affc88142872bd11d2ceebcbee5a2a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: mwm126/mfix-exa:cuda +image: python:3.7.5-buster variables: GIT_STRATEGY: fetch @@ -8,12 +8,10 @@ variables: test:all: script: - - cmake -S . - -B build - -G Ninja - - cmake --build build --target unit_tests - - ./build/src/tests/unit_tests - - cmake --build build --target mfix-parser - - find -name inputs |grep -v tutorials/wdf/mueller | xargs -l ./build/mfix-parser # FIXME: correct syntax error (= =) in file + - python -m pip install meson ninja + - meson build + - meson test -C build + - ninja -C build src/mfix-parser + - find -name inputs |grep -v tutorials/wdf/mueller | xargs -l ./build/src/mfix-parser # FIXME: correct syntax error (= =) in file tags: - mfix-exa diff --git a/CMakeLists.txt b/CMakeLists.txt index b70011512f33750da8577f457358c4a21b54beaf..cdfb12c0e74796918f0af197d5ca27c0ed6c7ecf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,21 @@ if(CCACHE_FOUND) endif() add_subdirectory(src) +add_subdirectory(tests) + +find_program(CLANG_FMT NAMES clang-format-9 clang-format-8 clang-format-7 clang-format) + +if(CLANG_FMT) + get_target_property(_psrcs unit_tests SOURCES) + add_custom_target(fmt_test + COMMAND ${CLANG_FMT} -i ${_psrcs} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests + ) + file(GLOB _includes ${PROJECT_SOURCE_DIR}/src/*.hpp) + + add_custom_target(fmt) + add_dependencies(fmt fmt_test) +endif() set(EXENAME "mfix-parser") add_executable(${EXENAME} src/main.cpp) diff --git a/meson.build b/meson.build new file mode 100644 index 0000000000000000000000000000000000000000..0b8213fcf1d8e553d38bad757bcc33f0a8ab90d0 --- /dev/null +++ b/meson.build @@ -0,0 +1,10 @@ +project('mfix-parser', 'cpp', + version : '0.1', + default_options : ['warning_level=3', 'cpp_std=c++17']) + +tao_inc = include_directories('subprojects/PEGTL/include') +catch2_inc = include_directories('subprojects/Catch2/single_include') +parser_inc = include_directories('src') + +subdir('src') +subdir('tests') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1b4d8ffc29428d1bd39252cdc3b8939d4b202071..aaf0ffb85d58687e8196395b9d092e68438427ae 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,19 +12,3 @@ target_include_directories(parser PRIVATE ${CMAKE_SOURCE_DIR}/subprojects/PEGTL/include) target_link_libraries(parser PRIVATE stdc++fs) - -add_subdirectory(tests) - -find_program(CLANG_FMT NAMES clang-format-9 clang-format-8 clang-format-7 clang-format) - -if(CLANG_FMT) - get_target_property(_psrcs unit_tests SOURCES) - add_custom_target(fmt_test - COMMAND ${CLANG_FMT} -i ${_psrcs} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests - ) - file(GLOB _includes ${PROJECT_SOURCE_DIR}/src/*.hpp) - - add_custom_target(fmt) - add_dependencies(fmt fmt_test) -endif() diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000000000000000000000000000000000000..d620efda2ca11d291b00f74c1b7412cfc3ed7c11 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,10 @@ +lib_parser = static_library('mfix-parser', + 'inputs_file.cpp', + 'parser.cpp', + 'solver.cpp', + include_directories: tao_inc, + install : true) + +executable('mfix-parser', + 'main.cpp', + link_with: lib_parser) diff --git a/src/tests/CMakeLists.txt b/tests/CMakeLists.txt similarity index 96% rename from src/tests/CMakeLists.txt rename to tests/CMakeLists.txt index 355c820fdf0b5e17ed4611eeee0558a268b02169..ddb31a995803f0961c9ac2f4cc641f8bcdea1e2c 100644 --- a/src/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -3,14 +3,12 @@ ################################################################################ add_executable(unit_tests EXCLUDE_FROM_ALL - ../inputs_file.cpp - ../parser.cpp - ../solver.cpp inputs.t.cpp parser.t.cpp main.cpp solver.t.cpp ) +target_link_libraries(unit_tests parser) target_include_directories(unit_tests PRIVATE ${CMAKE_SOURCE_DIR}/subprojects/PEGTL/include diff --git a/src/tests/inputs.t.cpp b/tests/inputs.t.cpp similarity index 100% rename from src/tests/inputs.t.cpp rename to tests/inputs.t.cpp diff --git a/src/tests/main.cpp b/tests/main.cpp similarity index 100% rename from src/tests/main.cpp rename to tests/main.cpp diff --git a/tests/meson.build b/tests/meson.build new file mode 100644 index 0000000000000000000000000000000000000000..f0b783875204036a25a326edfc9ee1980d8b539b --- /dev/null +++ b/tests/meson.build @@ -0,0 +1,10 @@ +unit_exe = executable('unit_tests', + 'inputs.t.cpp', + 'parser.t.cpp', + 'solver.t.cpp', + 'main.cpp', + include_directories: [parser_inc, catch2_inc], + link_with: lib_parser + ) + +test('unit_test', unit_exe) diff --git a/src/tests/parser.t.cpp b/tests/parser.t.cpp similarity index 100% rename from src/tests/parser.t.cpp rename to tests/parser.t.cpp diff --git a/src/tests/solver.t.cpp b/tests/solver.t.cpp similarity index 100% rename from src/tests/solver.t.cpp rename to tests/solver.t.cpp