From 99c57292ada819fcabd1124bb45b22eb6477483c Mon Sep 17 00:00:00 2001
From: Marco Biasini <marco.biasini@unibas.ch>
Date: Thu, 26 Jul 2012 09:43:49 +0200
Subject: [PATCH] don't pool headers into one target

The idea was to speed up the build process by removing several
unneccessary targets and stage all headers in one go. However,
for some reason, CMake does not think that's a good idea. Only
parts of the headers get staged
---
 cmake_support/OST.cmake | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake
index c6f9356f1..ea1fa7023 100644
--- a/cmake_support/OST.cmake
+++ b/cmake_support/OST.cmake
@@ -69,7 +69,6 @@ endmacro()
 # content changed.
 #-------------------------------------------------------------------------------
 macro(copy_if_different FROM_DIR TO_DIR FILES TARGETS TARGET)
-  set(ADD_TARGETS "")
   foreach(SRC ${FILES})
       set(SRCFILE ${SRC})
       if("${FROM_DIR}" STREQUAL "" OR "${FROM_DIR}" STREQUAL "./")
@@ -87,13 +86,8 @@ macro(copy_if_different FROM_DIR TO_DIR FILES TARGETS TARGET)
       add_custom_command(TARGET "${TARGET}" PRE_BUILD
           DEPENDS ${FROM}
           COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FROM} ${TO}
-          COMMENT ""
-          )
-      list(APPEND ADD_TARGETS ${TO})
+          COMMENT "Staging ${SRC}")
   endforeach()
-  if (TARGETS)
-    set(${TARGETS} ${ADD_TARGETS})
-  endif()
 endmacro()
 
 #-------------------------------------------------------------------------------
@@ -109,20 +103,16 @@ macro(stage_headers HEADERS HEADER_INSTALL_DIR TARGET SUB)
   # building the library
   string(REPLACE "/" "_" _SUB_NO_SLASH "${SUB}")
   string(REPLACE "${PREFIX}_" "" _TARGET "${TARGET}")
-  #message("target before: ${TARGET} after: ${_TARGET}")
   set(_TARGET_NAME ${_TARGET}_${_SUB_NO_SLASH}_headers)
   set(_SUB ${SUB})
   if (NOT _SUB)
     set(_TARGET_NAME ${_TARGET}_headers)
   endif()
-  if (NOT TARGET headers)
-    add_custom_target("headers" COMMENT "")
-  endif()
   set(HEADER_DIR "${HEADER_STAGE_PATH}/${HEADER_INSTALL_DIR}")
   copy_if_different("" "${HEADER_DIR}"
                     "${_ABS_HEADER_NAMES}" ""
-                    "${TARGET}")
-  add_dependencies(${TARGET} "headers")
+                    "${_TARGET_NAME}")
+  add_dependencies(${TARGET} ${_TARGET_NAME})
 endmacro()
 
 #-------------------------------------------------------------------------------
-- 
GitLab