瀏覽代碼

ENH: Some cleanup and try to fix Visual Studio builds

Andy Cedilnik 22 年之前
父節點
當前提交
a1e4c4f1df
共有 2 個文件被更改,包括 68 次插入82 次删除
  1. 34 41
      Tests/SimpleInstall/CMakeLists.txt
  2. 34 41
      Tests/SimpleInstallS2/CMakeLists.txt

+ 34 - 41
Tests/SimpleInstall/CMakeLists.txt

@@ -6,6 +6,26 @@ SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}")
 
 SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
 
+SET(EXTRA_INSTALL_FLAGS)
+IF(CMAKE_GENERATOR MATCHES "^Visual Studio")
+  MESSAGE("CMake generator: ${CMAKE_GENERATOR}")
+  FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel)
+    IF(MAKEPROGRAM MATCHES "/build ${build_type}")
+      SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
+    ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}")
+    IF(MAKEPROGRAM MATCHES "- ${build_type}")
+      SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
+    ENDIF(MAKEPROGRAM MATCHES "- ${build_type}")
+  ENDFOREACH(build_type)
+  IF(NOT EXTRA_INSTALL_FLAGS)
+    IF(BUILD_TYPE)
+      SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE})
+    ENDIF(BUILD_TYPE)
+  ENDIF(NOT EXTRA_INSTALL_FLAGS)
+ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
+
+MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
+
 IF(STAGE2)
   FIND_LIBRARY(TEST1_LIBRARY 
     NAMES test1 test1${CMAKE_DEBUG_POSTFIX}
@@ -15,63 +35,36 @@ IF(STAGE2)
     NAMES test2 test2${CMAKE_DEBUG_POSTFIX}
     PATHS "${CMAKE_INSTALL_PREFIX}/lib"
     DOC "First library")
+
   ADD_EXECUTABLE (SimpleInstallS2 inst.cxx foo.c foo.h)
   TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY})
-
-  ADD_CUSTOM_COMMAND(
-    TARGET SimpleInstallS2
-    POST_BUILD
-    COMMAND ${CMAKE_COMMAND}
-    ARGS ${EXTRA_INSTALL_FLAGS} 
-    "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
-    COMMENT "Install Project"
-    )
+  SET(install_target SimpleInstallS2)
 
   INSTALL_TARGETS(/bin SimpleInstallS2)
-
 ELSE(STAGE2)
   # this is stage 1, so create libraries and modules and install everything
   ADD_LIBRARY(test1 STATIC lib1.cxx)
   ADD_LIBRARY(test2 SHARED lib2.cxx)
   ADD_LIBRARY(test3 MODULE lib3.cxx)
 
-
-
-  SET(EXTRA_INSTALL_FLAGS)
-  IF(CMAKE_GENERATOR MATCHES "^Visual Studio")
-    MESSAGE("CMake generator: ${CMAKE_GENERATOR}")
-    FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel)
-      IF(MAKEPROGRAM MATCHES "/build ${build_type}")
-        SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
-      ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}")
-      IF(MAKEPROGRAM MATCHES "- ${build_type}")
-        SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
-      ENDIF(MAKEPROGRAM MATCHES "- ${build_type}")
-    ENDFOREACH(build_type)
-    IF(NOT EXTRA_INSTALL_FLAGS)
-      IF(BUILD_TYPE)
-        SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE})
-      ENDIF(BUILD_TYPE)
-    ENDIF(NOT EXTRA_INSTALL_FLAGS)
-  ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
-
-  MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
-
   ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h)
   TARGET_LINK_LIBRARIES(SimpleInstall test1 test2)
+  SET(install_target SimpleInstall)
 
   ADD_DEPENDENCIES(SimpleInstall test3)
-  ADD_CUSTOM_COMMAND(
-    TARGET SimpleInstall
-    POST_BUILD
-    COMMAND ${CMAKE_COMMAND}
-    ARGS ${EXTRA_INSTALL_FLAGS} 
-    "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
-    COMMENT "Install Project"
-    )
 
   INSTALL_TARGETS(/bin SimpleInstall)
   INSTALL_TARGETS(/lib test1 test2 test3)
   INSTALL_TARGETS(/include lib1.h lib2.h lib3.h)
-
 ENDIF(STAGE2)
+
+ADD_CUSTOM_COMMAND(
+  TARGET ${install_target}
+  POST_BUILD
+  COMMAND ${CMAKE_COMMAND}
+  ARGS ${EXTRA_INSTALL_FLAGS} 
+  "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
+  COMMENT "Install Project"
+  )
+
+

+ 34 - 41
Tests/SimpleInstallS2/CMakeLists.txt

@@ -6,6 +6,26 @@ SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}")
 
 SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
 
+SET(EXTRA_INSTALL_FLAGS)
+IF(CMAKE_GENERATOR MATCHES "^Visual Studio")
+  MESSAGE("CMake generator: ${CMAKE_GENERATOR}")
+  FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel)
+    IF(MAKEPROGRAM MATCHES "/build ${build_type}")
+      SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
+    ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}")
+    IF(MAKEPROGRAM MATCHES "- ${build_type}")
+      SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
+    ENDIF(MAKEPROGRAM MATCHES "- ${build_type}")
+  ENDFOREACH(build_type)
+  IF(NOT EXTRA_INSTALL_FLAGS)
+    IF(BUILD_TYPE)
+      SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE})
+    ENDIF(BUILD_TYPE)
+  ENDIF(NOT EXTRA_INSTALL_FLAGS)
+ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
+
+MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
+
 IF(STAGE2)
   FIND_LIBRARY(TEST1_LIBRARY 
     NAMES test1 test1${CMAKE_DEBUG_POSTFIX}
@@ -15,63 +35,36 @@ IF(STAGE2)
     NAMES test2 test2${CMAKE_DEBUG_POSTFIX}
     PATHS "${CMAKE_INSTALL_PREFIX}/lib"
     DOC "First library")
+
   ADD_EXECUTABLE (SimpleInstallS2 inst.cxx foo.c foo.h)
   TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY})
-
-  ADD_CUSTOM_COMMAND(
-    TARGET SimpleInstallS2
-    POST_BUILD
-    COMMAND ${CMAKE_COMMAND}
-    ARGS ${EXTRA_INSTALL_FLAGS} 
-    "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
-    COMMENT "Install Project"
-    )
+  SET(install_target SimpleInstallS2)
 
   INSTALL_TARGETS(/bin SimpleInstallS2)
-
 ELSE(STAGE2)
   # this is stage 1, so create libraries and modules and install everything
   ADD_LIBRARY(test1 STATIC lib1.cxx)
   ADD_LIBRARY(test2 SHARED lib2.cxx)
   ADD_LIBRARY(test3 MODULE lib3.cxx)
 
-
-
-  SET(EXTRA_INSTALL_FLAGS)
-  IF(CMAKE_GENERATOR MATCHES "^Visual Studio")
-    MESSAGE("CMake generator: ${CMAKE_GENERATOR}")
-    FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel)
-      IF(MAKEPROGRAM MATCHES "/build ${build_type}")
-        SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
-      ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}")
-      IF(MAKEPROGRAM MATCHES "- ${build_type}")
-        SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
-      ENDIF(MAKEPROGRAM MATCHES "- ${build_type}")
-    ENDFOREACH(build_type)
-    IF(NOT EXTRA_INSTALL_FLAGS)
-      IF(BUILD_TYPE)
-        SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE})
-      ENDIF(BUILD_TYPE)
-    ENDIF(NOT EXTRA_INSTALL_FLAGS)
-  ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
-
-  MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
-
   ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h)
   TARGET_LINK_LIBRARIES(SimpleInstall test1 test2)
+  SET(install_target SimpleInstall)
 
   ADD_DEPENDENCIES(SimpleInstall test3)
-  ADD_CUSTOM_COMMAND(
-    TARGET SimpleInstall
-    POST_BUILD
-    COMMAND ${CMAKE_COMMAND}
-    ARGS ${EXTRA_INSTALL_FLAGS} 
-    "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
-    COMMENT "Install Project"
-    )
 
   INSTALL_TARGETS(/bin SimpleInstall)
   INSTALL_TARGETS(/lib test1 test2 test3)
   INSTALL_TARGETS(/include lib1.h lib2.h lib3.h)
-
 ENDIF(STAGE2)
+
+ADD_CUSTOM_COMMAND(
+  TARGET ${install_target}
+  POST_BUILD
+  COMMAND ${CMAKE_COMMAND}
+  ARGS ${EXTRA_INSTALL_FLAGS} 
+  "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
+  COMMENT "Install Project"
+  )
+
+