| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- cmake_minimum_required (VERSION 2.8)
- project(FortranOnly Fortran)
- message("CTEST_FULL_OUTPUT ")
- # create a library with hello and world functions
- add_library(FortranOnlylib hello.f world.f)
- # create an executable that calls hello and world
- add_executable(FortranOnly testf.f)
- target_link_libraries(FortranOnly FortranOnlylib)
- # create a custom command that runs FortranOnly and puts
- # the output into the file testfhello.txt
- add_custom_command(OUTPUT ${FortranOnly_BINARY_DIR}/testfhello.txt
- COMMAND ${FortranOnly_BINARY_DIR}/${CMAKE_CFG_INTDIR}/FortranOnly
- > testfhello.txt)
- # create a second executable FortranOnly2 that has
- # testfhello.txt has an source file so that it will
- # run the above custom command.
- add_executable(FortranOnly2 testfhello.txt testf.f)
- target_link_libraries(FortranOnly2 FortranOnlylib)
- # create a custom target to check the content of testfhello.txt
- # by running the cmake script checktestf2.cmake
- add_custom_target(checktestf2 ALL
- COMMAND ${CMAKE_COMMAND}
- -P ${FortranOnly_SOURCE_DIR}/checktestf2.cmake)
- # create a custom target that runs FortranOnly exectuable and creates
- # a file out.txt that should have hello world in it.
- add_custom_target(sayhello ALL
- COMMAND ${FortranOnly_BINARY_DIR}/${CMAKE_CFG_INTDIR}/FortranOnly > out.txt
- )
- # make sure stuff is built in the right order
- add_dependencies(checktestf2 FortranOnly2)
- add_dependencies(sayhello FortranOnly)
- add_dependencies(FortranOnly2 FortranOnly)
- # add a custom target that checkes that out.txt has the correct
- # content
- add_custom_target(checksayhello ALL
- COMMAND ${CMAKE_COMMAND} -P ${FortranOnly_SOURCE_DIR}/checksayhello.cmake
- )
- add_dependencies(checksayhello sayhello)
|