summaryrefslogtreecommitdiffstats
path: root/Tests/OutDir/CMakeLists.txt
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-10-28 17:35:53 (GMT)
committerBrad King <brad.king@kitware.com>2009-10-28 17:35:53 (GMT)
commit28c3d59ed930976fd5ac4b5ea4f595632ef54758 (patch)
treecf3067e1271c86c4470085f3e76ab3767f0c2144 /Tests/OutDir/CMakeLists.txt
parent74c59a748df858aa474342f3ad53e36cf877f9c1 (diff)
downloadCMake-28c3d59ed930976fd5ac4b5ea4f595632ef54758.zip
CMake-28c3d59ed930976fd5ac4b5ea4f595632ef54758.tar.gz
CMake-28c3d59ed930976fd5ac4b5ea4f595632ef54758.tar.bz2
Test per-config OUTPUT_DIRECTORY properties
We test (ARCHIVE|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY_<CONFIG> properties by building COnly as a subdirectory and setting the properties to put its files in specific locations. We build an executable that verifies the targets actually appear where expected.
Diffstat (limited to 'Tests/OutDir/CMakeLists.txt')
-rw-r--r--Tests/OutDir/CMakeLists.txt35
1 files changed, 35 insertions, 0 deletions
diff --git a/Tests/OutDir/CMakeLists.txt b/Tests/OutDir/CMakeLists.txt
new file mode 100644
index 0000000..88468c3
--- /dev/null
+++ b/Tests/OutDir/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 2.8)
+project(OutDir C)
+
+if(CMAKE_CONFIGURATION_TYPES)
+ foreach(config ${CMAKE_CONFIGURATION_TYPES})
+ string(TOUPPER "${config}" CONFIG)
+ list(APPEND configs "${CONFIG}")
+ endforeach()
+ set(CMAKE_BUILD_TYPE)
+elseif(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Debug)
+endif()
+
+if(CMAKE_BUILD_TYPE)
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" configs)
+endif()
+
+set(top "${OutDir_BINARY_DIR}")
+foreach(config ${configs})
+ foreach(type archive runtime library)
+ string(TOUPPER "${type}" TYPE)
+ set(CMAKE_${TYPE}_OUTPUT_DIRECTORY_${config} "${top}/${type}")
+ file(REMOVE_RECURSE "${top}/${type}")
+ endforeach()
+endforeach()
+
+add_subdirectory(../COnly COnly)
+
+add_custom_command(
+ OUTPUT OutDir.h
+ COMMAND ${CMAKE_COMMAND} -Dtop=${top} -P ${OutDir_SOURCE_DIR}/OutDir.cmake
+ DEPENDS COnly ${OutDir_SOURCE_DIR}/OutDir.cmake
+ )
+include_directories(${top})
+add_executable(OutDir OutDir.c OutDir.h)