summaryrefslogtreecommitdiffstats
path: root/Tests/Architecture
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-10-21 17:01:17 (GMT)
committerBrad King <brad.king@kitware.com>2009-10-21 17:01:17 (GMT)
commite4897a78b9a325537117a57243c65d82774694fc (patch)
tree4ed2cbc49125bd9b28d70393bba34ca89f3bbe30 /Tests/Architecture
parent2dc39b8c329425cb54e5e111e2b00d79caa1db36 (diff)
downloadCMake-e4897a78b9a325537117a57243c65d82774694fc.zip
CMake-e4897a78b9a325537117a57243c65d82774694fc.tar.gz
CMake-e4897a78b9a325537117a57243c65d82774694fc.tar.bz2
Test OSX_ARCHITECTURES target property
We test the property with a project that fails to link due to an architecture mismatch between an executable and a static library. See issue #8725.
Diffstat (limited to 'Tests/Architecture')
-rw-r--r--Tests/Architecture/CMakeLists.txt21
-rw-r--r--Tests/Architecture/bar.c2
-rw-r--r--Tests/Architecture/foo.c1
3 files changed, 24 insertions, 0 deletions
diff --git a/Tests/Architecture/CMakeLists.txt b/Tests/Architecture/CMakeLists.txt
new file mode 100644
index 0000000..bc767fe
--- /dev/null
+++ b/Tests/Architecture/CMakeLists.txt
@@ -0,0 +1,21 @@
+cmake_minimum_required(VERSION 2.8)
+project(Architecture C)
+
+add_library(foo foo.c)
+if(CMAKE_OSX_ARCHITECTURES)
+ get_property(archs TARGET foo PROPERTY OSX_ARCHITECTURES)
+ if(NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "${archs}")
+ message(FATAL_ERROR
+ "OSX_ARCHITECTURES property not initialized by CMAKE_OSX_ARCHITECTURES.\n"
+ "Expected [${CMAKE_OSX_ARCHITECTURES}], got [${archs}]."
+ )
+ endif()
+endif()
+set_property(TARGET foo PROPERTY OSX_ARCHITECTURES i386)
+set_property(TARGET foo PROPERTY OSX_ARCHITECTURES_DEBUG ppc)
+
+add_executable(bar bar.c)
+target_link_libraries(bar foo)
+set_property(TARGET bar PROPERTY OUTPUT_NAME Architecture)
+set_property(TARGET bar PROPERTY OSX_ARCHITECTURES ppc)
+set_property(TARGET bar PROPERTY OSX_ARCHITECTURES_DEBUG i386)
diff --git a/Tests/Architecture/bar.c b/Tests/Architecture/bar.c
new file mode 100644
index 0000000..923c89c
--- /dev/null
+++ b/Tests/Architecture/bar.c
@@ -0,0 +1,2 @@
+extern int foo(void);
+int main() { return foo(); }
diff --git a/Tests/Architecture/foo.c b/Tests/Architecture/foo.c
new file mode 100644
index 0000000..e35694b
--- /dev/null
+++ b/Tests/Architecture/foo.c
@@ -0,0 +1 @@
+int foo(void) { return 0; }