~ubuntu-branches/ubuntu/utopic/cmake/utopic

« back to all changes in this revision

Viewing changes to Tests/AliasTarget/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Harald Sitter
  • Date: 2013-10-10 12:54:39 UTC
  • mfrom: (1.14.7)
  • Revision ID: package-import@ubuntu.com-20131010125439-h0ahaj004on6oj92
Tags: 2.8.12-0ubuntu1
New upstream release LP: #1246701

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
cmake_minimum_required(VERSION 2.8.11)
 
3
project(AliasTarget)
 
4
 
 
5
add_library(foo SHARED empty.cpp)
 
6
add_library(PREFIX::Foo ALIAS foo)
 
7
add_library(Another::Alias ALIAS foo)
 
8
 
 
9
add_library(objects OBJECT object.cpp)
 
10
add_library(Alias::Objects ALIAS objects)
 
11
 
 
12
target_compile_definitions(foo PUBLIC FOO_DEFINE)
 
13
 
 
14
add_library(bar SHARED empty.cpp)
 
15
target_compile_definitions(bar PUBLIC BAR_DEFINE)
 
16
 
 
17
target_link_libraries(foo LINK_PUBLIC $<$<STREQUAL:$<TARGET_PROPERTY:PREFIX::Foo,ALIASED_TARGET>,foo>:bar>)
 
18
 
 
19
add_executable(AliasTarget commandgenerator.cpp $<TARGET_OBJECTS:Alias::Objects>)
 
20
add_executable(PREFIX::AliasTarget ALIAS AliasTarget)
 
21
add_executable(Generator::Command ALIAS AliasTarget)
 
22
 
 
23
add_custom_command(OUTPUT commandoutput.h COMMAND Generator::Command)
 
24
 
 
25
add_library(bat SHARED bat.cpp "${CMAKE_CURRENT_BINARY_DIR}/commandoutput.h")
 
26
target_link_libraries(bat PREFIX::Foo)
 
27
target_include_directories(bat PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
 
28
 
 
29
add_executable(targetgenerator targetgenerator.cpp)
 
30
add_executable(Generator::Target ALIAS targetgenerator)
 
31
 
 
32
add_custom_target(usealias Generator::Target)
 
33
add_dependencies(bat usealias)
 
34
 
 
35
if (NOT TARGET Another::Alias)
 
36
  message(SEND_ERROR "Another::Alias is not considered a target.")
 
37
endif()
 
38
 
 
39
get_target_property(_alt PREFIX::Foo ALIASED_TARGET)
 
40
if (NOT ${_alt} STREQUAL foo)
 
41
  message(SEND_ERROR "ALIASED_TARGET is not foo: ${_alt}")
 
42
endif()
 
43
 
 
44
get_property(_alt2 TARGET PREFIX::Foo PROPERTY ALIASED_TARGET)
 
45
if (NOT ${_alt2} STREQUAL foo)
 
46
  message(SEND_ERROR "ALIASED_TARGET is not foo.")
 
47
endif()