diff options
author | Mathias Preiner <mathias.preiner@gmail.com> | 2018-09-27 19:47:25 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-27 19:47:25 -0700 |
commit | f939b41b2710ea2020a646b2f1a018fb9c78ff8c (patch) | |
tree | d3e11538a1783daa896b54fb102b2467b6f3f77d /cmake | |
parent | 4a9e21371a5012285114126cab1dbce18fdcec6c (diff) |
cmake: Add CxxTest finder module to allow custom paths. (#2542)
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/FindCxxTest.cmake | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cmake/FindCxxTest.cmake b/cmake/FindCxxTest.cmake new file mode 100644 index 000000000..cd7aed70d --- /dev/null +++ b/cmake/FindCxxTest.cmake @@ -0,0 +1,45 @@ +# Find CxxTest +# CxxTest_FOUND - system has CxxTest lib +# CxxTest_INCLUDE_DIR - the CxxTest include directory +# CxxTest_TESTGEN_EXECUTABLE - CxxTest excecutable +# CxxTest_TESTGEN_INTERPRETER - Python/Perl interpreter for running executable + +find_package(PythonInterp QUIET) +find_package(Perl QUIET) + +find_path(CxxTest_INCLUDE_DIR cxxtest/TestSuite.h + PATHS ${CxxTest_HOME} + NO_DEFAULT_PATH) +find_program(CxxTest_PYTHON_TESTGEN_EXECUTABLE + NAMES cxxtestgen cxxtestgen.py + PATHS ${CxxTest_HOME}/bin + NO_DEFAULT_PATH) +find_program(CxxTest_PERL_TESTGEN_EXECUTABLE cxxtestgen.pl + PATHS ${CxxTest_HOME}/bin + NO_DEFAULT_PATH) + +if(NOT CxxTest_HOME) + find_path(CxxTest_INCLUDE_DIR cxxtest/TestSuite.h) + find_program(CxxTest_PYTHON_TESTGEN_EXECUTABLE NAMES cxxtestgen cxxtestgen.py) + find_program(CxxTest_PERL_TESTGEN_EXECUTABLE cxxtestgen.pl) +endif() + +if(PYTHONINTERP_FOUND AND CxxTest_PYTHON_TESTGEN_EXECUTABLE) + set(CxxTest_TESTGEN_EXECUTABLE ${CxxTest_PYTHON_TESTGEN_EXECUTABLE}) + set(CxxTest_TESTGEN_INTERPRETER ${PYTHON_EXECUTABLE}) +elseif(PERL_FOUND AND CxxTest_PERL_TESTGEN_EXECUTABLE) + set(CxxTest_TESTGEN_EXECUTABLE ${CxxTest_PERL_TESTGEN_EXECUTABLE}) + set(CxxTest_TESTGEN_INTERPRETER ${PERL_EXECUTABLE}) +elseif(NOT PYTHONINTERP_FOUND AND NOT PERL_FOUND AND CxxTest_FIND_REQUIRED) + message(FATAL_ERROR "Neither Python nor Perl found, cannot use CxxTest.") +endif() + +if(NOT DEFINED CxxTest_TESTGEN_ARGS) + set(CxxTest_TESTGEN_ARGS --error-printer) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + CxxTest DEFAULT_MSG CxxTest_INCLUDE_DIR CxxTest_TESTGEN_EXECUTABLE) + +mark_as_advanced(CxxTest_INCLUDE_DIR CxxTest_TESTGEN_EXECUTABLE) |