diff --git a/.travis.yml b/.travis.yml index 4daaa67..424c24c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,6 @@ before_install: script: - mkdir tmp - cd tmp - - cmake .. + - cmake -DMADDY_ENABLED_TESTS=ON .. - make -j4 - ../build/MaddyTests diff --git a/CHANGELOG.md b/CHANGELOG.md index 72633bb..e08fd7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ maddy uses [semver versioning](https://semver.org/). * ![**ADDED**](https://img.shields.io/badge/-ADDED-%23099) Added contribution guideline * ![**CHANGED**](https://img.shields.io/badge/-CHANGED-%23e90) updated cmake minimum required version to 3.25 * ![**CHANGED**](https://img.shields.io/badge/-CHANGED-%23e90) gtest is now loaded via cmake and not a git submodule any longer - updated gtest version to 1.13.0 +* ![**CHANGED**](https://img.shields.io/badge/-CHANGED-%23e90) tests are only run if the cmake option `MADDY_ENABLED_TESTS` is on, moved test cmake code to the `tests` subfolder * ? ## version 1.1.2 2020-10-04 diff --git a/CMakeLists.txt b/CMakeLists.txt index 526e905..a19207d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,6 @@ cmake_minimum_required(VERSION 3.25) project(maddy) -enable_testing() - # ------------------------------------------------------------------------------ set(MADDY_CPP_VERSION 14) @@ -20,8 +18,15 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}) # ------------------------------------------------------------------------------ +option(MADDY_ENABLED_TESTS "enable building tests" OFF) + +if(${MADDY_ENABLED_TESTS}) + enable_testing() +endif() + +# ------------------------------------------------------------------------------ + set(MADDY_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include) -file(GLOB_RECURSE MADDY_TESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tests/maddy/*.cpp) # ------------------------------------------------------------------------------ @@ -54,10 +59,6 @@ endif() # ------------------------------------------------------------------------------ -add_subdirectory(libs) - -# ------------------------------------------------------------------------------ - add_library(maddy INTERFACE) target_include_directories(maddy INTERFACE ${MADDY_INCLUDE_DIR} @@ -65,14 +66,6 @@ target_include_directories(maddy INTERFACE # ------------------------------------------------------------------------------ -add_executable( - MaddyTests - ${MADDY_TESTS_FILES} - ${CMAKE_CURRENT_SOURCE_DIR}/tests/main.cpp -) -target_include_directories(MaddyTests PUBLIC - ${LIBS_INCLUDE_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/tests -) -target_link_libraries(MaddyTests maddy gmock_main) -add_test(MaddyTests ${CMAKE_CURRENT_SOURCE_DIR}/build/MaddyTests) +if(${MADDY_ENABLED_TESTS}) + add_subdirectory(tests) +endif() diff --git a/README.md b/README.md index e5d457f..8c2c65b 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ It is tested to work on: * Linux (gcc) * OSX (clang) -* Windows (Visual Studio 2017) +* Windows (Visual Studio 2017, mingw) ## Dependencies @@ -63,10 +63,9 @@ Open your preferred terminal and type: ```shell git clone https://github.com/progsource/maddy.git cd maddy -git submodule update --init --recursive mkdir tmp cd tmp -cmake .. +cmake -DMADDY_ENABLED_TESTS=ON .. make make test # or run the executable in ../build/MaddyTests ``` diff --git a/appveyor.yml b/appveyor.yml index e8842c3..847894d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ install: before_build: - cmd: mkdir tmp - cmd: cd tmp - - cmd: cmake -G "Visual Studio 15 Win64" .. + - cmd: cmake -G "Visual Studio 15 Win64" -DMADDY_ENABLED_TESTS=ON .. build: project: $(APPVEYOR_BUILD_FOLDER)\tmp\$(APPVEYOR_PROJECT_NAME).sln diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt deleted file mode 100644 index 6391206..0000000 --- a/libs/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# This project is licensed under the MIT license. For more information see the -# LICENSE file. - -include(FetchContent) - -FetchContent_Declare( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG b796f7d44681514f58a683a3a71ff17c94edb0c1 # v1.13.0 -) -FetchContent_MakeAvailable(googletest) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..0252b57 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,28 @@ +# This project is licensed under the MIT license. For more information see the +# LICENSE file. + +include(FetchContent) + +FetchContent_Declare( + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG b796f7d44681514f58a683a3a71ff17c94edb0c1 # v1.13.0 +) +FetchContent_MakeAvailable(googletest) + +# ------------------------------------------------------------------------------ + +file(GLOB_RECURSE MADDY_TESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/maddy/*.cpp) + +# ------------------------------------------------------------------------------ + +add_executable( + MaddyTests + ${MADDY_TESTS_FILES} + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp +) +target_include_directories(MaddyTests PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) +target_link_libraries(MaddyTests maddy gmock_main) +add_test(MaddyTests MaddyTests)