From 15a38e79cd715b6e0dad22fb57b87de77f4b88d0 Mon Sep 17 00:00:00 2001
From: Tobias Schmidt <tobias.schmidt@unibas.ch>
Date: Tue, 22 May 2012 17:35:49 +0200
Subject: [PATCH] fixing make clean

---
 CMakeLists.txt          |  6 ++++--
 cmake_support/OST.cmake | 15 +++++++++++++++
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a46dc9b4..e65ba2323 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -268,9 +268,11 @@ endif()
 add_subdirectory(modules)
 add_subdirectory(scripts)
 add_subdirectory(deployment)
-set(FILES_TO_BE_REMOVED CMakeFiles stage tests)
+
+set(FILES_TO_BE_REMOVED ${CMAKE_SOURCE_DIR}/stage tests)
 set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
-                         "${FILES_TO_BE_REMOVED}")
+                             "${FILES_TO_BE_REMOVED}")
+
 
 #ost_match_boost_python_version(${PYTHON_LIBRARIES})
 
diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake
index 06e352919..06457ad71 100644
--- a/cmake_support/OST.cmake
+++ b/cmake_support/OST.cmake
@@ -164,6 +164,17 @@ macro(module)
   # create library  
   #-----------------------------------------------------------------------------
   file(MAKE_DIRECTORY ${LIB_STAGE_PATH})
+  file(MAKE_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
+  file(MAKE_DIRECTORY ${LIBEXEC_STAGE_PATH})
+  if (NOT TARGET make_stage_lib_dir)
+    add_custom_target(make_stage_lib_dir COMMAND ${CMAKE_COMMAND} -E make_directory ${LIB_STAGE_PATH})
+  endif()
+  if (NOT TARGET make_executable_output_dir)
+    add_custom_target(make_executable_output_dir COMMAND ${CMAKE_COMMAND} -E make_directory ${EXECUTABLE_OUTPUT_PATH})
+  endif()
+  if (NOT TARGET make_libexec_dir)
+    add_custom_target(make_libexec_dir COMMAND ${CMAKE_COMMAND} -E make_directory ${LIBEXEC_STAGE_PATH})
+  endif()
   if (WIN32)
     set(_ABS_FILE_PATTERN "^[A-Z]:/")
   else()
@@ -190,6 +201,9 @@ macro(module)
                                      EchoString   ${_ARG_NAME}
                                      MODULE_DEPS "${_ARG_DEPENDS_ON}")
     get_target_property(_DEFS ${_LIB_NAME} COMPILE_DEFINITIONS)
+    add_dependencies(${_LIB_NAME} make_stage_lib_dir)
+    add_dependencies(${_LIB_NAME} make_executable_output_dir)
+    add_dependencies(${_LIB_NAME} make_libexec_dir)
     set_target_properties(${_LIB_NAME} PROPERTIES
                           COMPILE_DEFINITIONS OST_MODULE_${_UPPER_LIB_NAME})
     set_target_properties(${_LIB_NAME} PROPERTIES
@@ -601,6 +615,7 @@ add_custom_target(check)
 add_custom_target(check_xml)
 if (WIN32)
   set_target_properties(check PROPERTIES EXCLUDE_FROM_ALL "1")
+  set_target_properties(check_xml PROPERTIES EXCLUDE_FROM_ALL "1")
 endif()
 
 #-------------------------------------------------------------------------------
-- 
GitLab