OK, so I guess there is no way to do that like with autotools... ----- Mail original -----
> De: "Franck Houssen" <[email protected]> > À: "CMake Mail List" <[email protected]> > Envoyé: Mercredi 10 Janvier 2018 12:22:39 > Objet: Re: [CMake] test depending on code compilation > I tried to reduce the example: > >> ls > CMakeLists.txt main.cpp mytest.cpp mytest.sh > >> more * > :::::::::::::: > CMakeLists.txt > :::::::::::::: > cmake_minimum_required(VERSION 3.7) > enable_language(CXX) > project(main) > add_executable(main main.cpp) > add_executable(mytestcpp mytest.cpp) > include(CTest) > enable_testing() > configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mytest.sh" > "${CMAKE_CURRENT_BINARY_DIR}/mytest.sh") > add_test(NAME mytestsh COMMAND ./mytest.sh WORKING_DIRECTORY > "${CMAKE_CURRENT_BINARY_DIR}") > add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} DEPENDS mytestcpp) > :::::::::::::: > main.cpp > :::::::::::::: > int main() {return 0;} > :::::::::::::: > mytest.cpp > :::::::::::::: > int main() {return 0;} > :::::::::::::: > mytest.sh > :::::::::::::: > #!/bin/bash > exit 0 > I want make to build only main => KO > >> make > [ 50%] Built target main > [100%] Built target mytestcpp > I want make check to build mytestcpp and run tests => OK but verbose is KO. > >> make check ARGS="-V" > [100%] Built target mytestcpp > Test project /tmp/BUILD > Start 1: mytestsh > 1/1 Test #1: mytestsh ......................... Passed 0.00 sec > I want make test to run test only => OK and verbose is OK. > ----- Mail original ----- > > De: "Franck Houssen" <[email protected]> > > > À: "CMake Mail List" <[email protected]> > > > Envoyé: Mercredi 10 Janvier 2018 10:47:34 > > > Objet: [CMake] test depending on code compilation > > > I need to design a test (= a bash script) such that : > > > 1) run a dedicated executable for the test (to be compiled) > > > 2) diff the run output with a reference log file > > > The test is created with : add_test(mytest ./mytest.sh). The bash script > > would look like: > > > >> more mytest.sh > > > /path/to/mytestexe > out.log > > > diff out.log out.ref > > > The dedicated executable for the test is created with : > > add_executable(mytestexe mytestexe.cpp) > > > Ideally, I would like mytestexe to be compiled when I type "make test" > > (before to run the test) but not "make". > > > Seems impossible to add a dependencie with : add_dependencies(mytest > > mytestexe). I googled this and found > > https://stackoverflow.com/questions/733475/cmake-ctest-make-test-doesnt-build-tests > > but this was not really clear to me...I added : add_custom_target(check > > COMMAND ${CMAKE_CTEST_COMMAND} DEPENDS mytestexe). > > > The 2 unexpected problems I have left are: > > > 1) mytestexe is compiled everytime I type "make" which is a solution but is > > not really what I am looking for (also compiled when I type "make check" > > which is expected). > > > => is there a way for make not to compile mytestexe (note I didn't added > > ALL > > in add_custom_target so I am not sure to know why make builds mytestexe) > > > 2) Also the verbosity is broken with check : make test ARGS="-V" is verbose > > , > > but, make check ARGS="-V" is not. > > > => how to deal with that ? > > > -- > > > Powered by www.kitware.com > > > Please keep messages on-topic and check the CMake FAQ at: > > http://www.cmake.org/Wiki/CMake_FAQ > > > Kitware offers various services to support the CMake community. For more > > information on each offering, please visit: > > > CMake Support: http://cmake.org/cmake/help/support.html > > > CMake Consulting: http://cmake.org/cmake/help/consulting.html > > > CMake Training Courses: http://cmake.org/cmake/help/training.html > > > Visit other Kitware open-source projects at > > http://www.kitware.com/opensource/opensource.html > > > Follow this link to subscribe/unsubscribe: > > > https://cmake.org/mailman/listinfo/cmake > > -- > Powered by www.kitware.com > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > Kitware offers various services to support the CMake community. For more > information on each offering, please visit: > CMake Support: http://cmake.org/cmake/help/support.html > CMake Consulting: http://cmake.org/cmake/help/consulting.html > CMake Training Courses: http://cmake.org/cmake/help/training.html > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > Follow this link to subscribe/unsubscribe: > https://cmake.org/mailman/listinfo/cmake
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake
