From be8c8cb350d00f5dba38e037014663bdc03aa62f Mon Sep 17 00:00:00 2001 From: Mark Meredith Date: Tue, 7 Apr 2020 11:00:50 -0400 Subject: [PATCH 1/6] Use meson --- .gitlab-ci.yml | 9 +++------ meson.build | 10 ++++++++++ src/meson.build | 10 ++++++++++ {src/tests => tests}/CMakeLists.txt | 0 {src/tests => tests}/inputs.t.cpp | 0 {src/tests => tests}/main.cpp | 0 tests/meson.build | 10 ++++++++++ {src/tests => tests}/parser.t.cpp | 0 {src/tests => tests}/solver.t.cpp | 0 9 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 meson.build create mode 100644 src/meson.build rename {src/tests => tests}/CMakeLists.txt (100%) rename {src/tests => tests}/inputs.t.cpp (100%) rename {src/tests => tests}/main.cpp (100%) create mode 100644 tests/meson.build rename {src/tests => tests}/parser.t.cpp (100%) rename {src/tests => tests}/solver.t.cpp (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 393b2fa..1c77980 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,12 +8,9 @@ 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 + - meson build + - meson test -C build + - ninja -C build mfix-parser - find -name inputs |grep -v tutorials/wdf/mueller | xargs -l ./build/mfix-parser # FIXME: correct syntax error (= =) in file tags: - mfix-exa diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..0b8213f --- /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/meson.build b/src/meson.build new file mode 100644 index 0000000..d620efd --- /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 100% rename from src/tests/CMakeLists.txt rename to tests/CMakeLists.txt 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 0000000..f0b7838 --- /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 -- GitLab From 9bc1f701373b29045af9afd2a6c150dc06b6c4d5 Mon Sep 17 00:00:00 2001 From: Mark Meredith Date: Tue, 7 Apr 2020 11:03:57 -0400 Subject: [PATCH 2/6] meson --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1c77980..6bb383f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ variables: test:all: script: + - python3 -m pip install meson - meson build - meson test -C build - ninja -C build mfix-parser -- GitLab From 235d41c5f620dadaaf07f37094af4c7dd3a8a726 Mon Sep 17 00:00:00 2001 From: Mark Meredith Date: Tue, 7 Apr 2020 11:04:46 -0400 Subject: [PATCH 3/6] fix --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6bb383f..4fc3f8e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ variables: test:all: script: - - python3 -m pip install meson + - python -m pip install meson - meson build - meson test -C build - ninja -C build mfix-parser -- GitLab From c8179dc9d94d839cc66f123d1b959f882e1c718f Mon Sep 17 00:00:00 2001 From: Mark Meredith Date: Tue, 7 Apr 2020 11:26:18 -0400 Subject: [PATCH 4/6] Use Python docker image --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4fc3f8e..350b141 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,7 +8,7 @@ variables: test:all: script: - - python -m pip install meson + - python -m pip install meson ninja - meson build - meson test -C build - ninja -C build mfix-parser -- GitLab From a0e7492635dbc94a3519f85ed5adefc747c16226 Mon Sep 17 00:00:00 2001 From: Mark Meredith Date: Tue, 7 Apr 2020 11:29:39 -0400 Subject: [PATCH 5/6] fix path --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 350b141..d7cab95 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,7 +11,7 @@ test:all: - python -m pip install meson ninja - meson build - meson test -C build - - ninja -C build mfix-parser - - find -name inputs |grep -v tutorials/wdf/mueller | xargs -l ./build/mfix-parser # FIXME: correct syntax error (= =) in file + - 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 -- GitLab From 4510149674b8fff352aeb300b8fa646d90a47722 Mon Sep 17 00:00:00 2001 From: Mark Meredith Date: Tue, 7 Apr 2020 11:33:04 -0400 Subject: [PATCH 6/6] Fix cmake --- CMakeLists.txt | 15 +++++++++++++++ src/CMakeLists.txt | 16 ---------------- tests/CMakeLists.txt | 4 +--- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b700115..cdfb12c 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/src/CMakeLists.txt b/src/CMakeLists.txt index 1b4d8ff..aaf0ffb 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/tests/CMakeLists.txt b/tests/CMakeLists.txt index 355c820..ddb31a9 100644 --- a/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 -- GitLab