diff options
author | Brad King <brad.king@kitware.com> | 2008-08-07 14:13:15 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-08-07 14:13:15 (GMT) |
commit | c76f3ae5b5b9709fc2cd97d838e52c52412bf5c5 (patch) | |
tree | 28c704f174b5d826ef3a1427c00bdcb647ab0f4d /Tests/Dependency/Case4/CMakeLists.txt | |
parent | b8fc8b324d2e1b892d0b41cf3581226c210131d0 (diff) | |
download | CMake-c76f3ae5b5b9709fc2cd97d838e52c52412bf5c5.zip CMake-c76f3ae5b5b9709fc2cd97d838e52c52412bf5c5.tar.gz CMake-c76f3ae5b5b9709fc2cd97d838e52c52412bf5c5.tar.bz2 |
ENH: Test fake circular dependency case
A recent change fixed a case in which CMake incorrectly diagnosed a
circular dependency involving a non-linkable executable target. This
adds a test for that case.
Diffstat (limited to 'Tests/Dependency/Case4/CMakeLists.txt')
-rw-r--r-- | Tests/Dependency/Case4/CMakeLists.txt | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Tests/Dependency/Case4/CMakeLists.txt b/Tests/Dependency/Case4/CMakeLists.txt new file mode 100644 index 0000000..87ab507 --- /dev/null +++ b/Tests/Dependency/Case4/CMakeLists.txt @@ -0,0 +1,23 @@ +project(CASE4 C) + +IF(CMAKE_ANSI_CFLAGS) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}") +ENDIF(CMAKE_ANSI_CFLAGS) + +# This is not really a circular dependency. "case4Bar" refers to a +# third-party library that happens to match the executable name, which +# is okay when the executable is not a linkable target (ENABLE_EXPORTS +# is not set). This tests whether CMake avoids incorrectly reporting +# a circular dependency. In practice case4Foo may be a shared +# library, but we skip that here because we do not want it to actually +# have to find the third-party library. +add_library(case4Foo STATIC foo.c) +target_link_libraries(case4Foo case4Bar) + +# The executable avoids linking to a library with its own name, which +# has been a CMake-ism for a long time, so we will not get a link +# failure. An imported target or executable with an OUTPUT_NAME set +# may be used if the user really wants to link a third-party library +# into an executable of the same name. +add_executable(case4Bar bar.c) +target_link_libraries(case4Bar case4Foo) |