changeset 509:c9a6d9df083f

CMake: output all runtimes to bin, closes #715
author David Demelier <markand@malikania.fr>
date Mon, 16 Oct 2017 13:47:05 +0200
parents 8328d56e1e35
children 6ec510722582
files cmake/function/IrccdDefineExecutable.cmake cmake/function/IrccdDefineLibrary.cmake cmake/function/IrccdDefineTest.cmake
diffstat 3 files changed, 37 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/cmake/function/IrccdDefineExecutable.cmake	Mon Oct 16 13:19:03 2017 +0200
+++ b/cmake/function/IrccdDefineExecutable.cmake	Mon Oct 16 13:47:05 2017 +0200
@@ -54,6 +54,20 @@
     target_compile_definitions(${EXE_TARGET} PRIVATE ${EXE_FLAGS})
     target_link_libraries(${EXE_TARGET} ${EXE_LIBRARIES})
 
+    set_target_properties(
+        ${EXE_TARGET}
+        PROPERTIES
+            RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+    )
+    foreach (c ${CMAKE_CONFIGURATION_TYPES})
+        string(TOUPPER ${c} cu)
+        set_target_properties(
+            ${EXE_TARGET}
+            PROPERTIES
+                RUNTIME_OUTPUT_DIRECTORY_${cu} ${CMAKE_BINARY_DIR}/bin/${c}
+        )
+    endforeach()
+
     install(
         TARGETS ${EXE_TARGET}
         COMPONENT ${EXE_TARGET}
--- a/cmake/function/IrccdDefineLibrary.cmake	Mon Oct 16 13:19:03 2017 +0200
+++ b/cmake/function/IrccdDefineLibrary.cmake	Mon Oct 16 13:47:05 2017 +0200
@@ -55,5 +55,18 @@
     target_include_directories(${LIB_TARGET} PRIVATE ${LIB_LOCAL_INCLUDES} PUBLIC ${LIB_PUBLIC_INCLUDES})
     target_compile_definitions(${LIB_TARGET} PUBLIC ${LIB_FLAGS})
     target_link_libraries(${LIB_TARGET} ${LIB_LIBRARIES})
-    set_target_properties(${LIB_TARGET} PROPERTIES PREFIX "")
+    set_target_properties(
+        ${LIB_TARGET}
+        PROPERTIES
+            PREFIX ""
+            RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+    )
+    foreach (c ${CMAKE_CONFIGURATION_TYPES})
+        string(TOUPPER ${c} cu)
+        set_target_properties(
+            ${LIB_TARGET}
+            PROPERTIES
+                RUNTIME_OUTPUT_DIRECTORY_${cu} ${CMAKE_BINARY_DIR}/bin/${c}
+        )
+    endforeach()
 endfunction()
--- a/cmake/function/IrccdDefineTest.cmake	Mon Oct 16 13:19:03 2017 +0200
+++ b/cmake/function/IrccdDefineTest.cmake	Mon Oct 16 13:47:05 2017 +0200
@@ -83,12 +83,16 @@
         PROPERTIES
             PROJECT_LABEL ${TEST_NAME}
             FOLDER test
-            RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tests
-            RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/tests
-            RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/tests
-            RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_BINARY_DIR}/tests
-            RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_BINARY_DIR}/tests
+            RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
     )
+    foreach (c ${CMAKE_CONFIGURATION_TYPES})
+        string(TOUPPER ${c} cu)
+        set_target_properties(
+            test-${TEST_NAME}
+            PROPERTIES
+                RUNTIME_OUTPUT_DIRECTORY_${cu} ${CMAKE_BINARY_DIR}/bin/${c}
+        )
+    endforeach()
 
     if (UNIX)
         set_target_properties(test-${TEST_NAME} PROPERTIES LINK_FLAGS -pthread)