Browse Source

On a Visual Studio build, do not copy .obj files for the Urho3D library but use them from their original location.

Lasse Öörni 12 years ago
parent
commit
c5278a8649
2 changed files with 8 additions and 30 deletions
  1. 1 21
      Source/CMake/Modules/Urho3D-CMake-magic.cmake
  2. 7 9
      Source/Engine/CMakeLists.txt

+ 1 - 21
Source/CMake/Modules/Urho3D-CMake-magic.cmake

@@ -323,27 +323,7 @@ macro (setup_library)
                 set_target_properties (${TARGET_NAME} PROPERTIES COMPILE_DEFINITIONS URHO3D_EXPORTS)
             endif ()
     
-            if (MSVC)
-                # Specific to VS generator
-                # On VS2008 we need to add a backslash to the IntDir, on later VS it already exists
-                if (CMAKE_GENERATOR MATCHES "2008")
-                    set (INTDIR_SLASH "\\")
-                else ()
-                    set (INTDIR_SLASH "")
-                endif ()
-                if (USE_MKLINK)
-                    set (SYMLINK ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET_NAME}.lnk)
-                    add_custom_command (TARGET ${TARGET_NAME} PRE_LINK
-                        COMMAND rd \"${SYMLINK}\"
-                        COMMAND mklink /D \"${SYMLINK}\" \"$(ProjectDir)$(IntDir)\"
-                        COMMENT "Creating a symbolic link pointing to object file directory")
-                else ()
-                    file (MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET_NAME}.dir)
-                    add_custom_command (TARGET ${TARGET_NAME} PRE_LINK
-                        COMMAND copy /B \"$(ProjectDir)$(IntDir)${INTDIR_SLASH}*.obj\" \"$(ProjectDir)CMakeFiles\\${TARGET_NAME}.dir\"
-                        COMMENT "Copying object files to a common location also used by Makefile generator")
-                endif ()
-            elseif (XCODE)
+            if (XCODE)
                 # Specific to Xcode generator
                 set (SYMLINK ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET_NAME}.lnk)
                 add_custom_command (TARGET ${TARGET_NAME} PRE_LINK

+ 7 - 9
Source/Engine/CMakeLists.txt

@@ -55,26 +55,24 @@ foreach (TARGET ${STATIC_LIBRARY_TARGETS})
     get_target_property (SOURCES ${TARGET} SOURCES)
     get_target_property (INT_DIR ${TARGET} LOCATION)
     get_filename_component (INT_DIR ${INT_DIR} PATH)
-    set (INT_DIR ${INT_DIR}/CMakeFiles/${TARGET}.dir)
     if (MSVC)
         if (CMAKE_GENERATOR MATCHES "2008")
-            string (REPLACE /$(OutDir) "" INT_DIR ${INT_DIR})
+            string (REPLACE /$(OutDir) "/${TARGET}.dir/$(ConfigurationName)" INT_DIR ${INT_DIR})
         else ()
-            string (REPLACE /$(Configuration) "" INT_DIR ${INT_DIR})
+            string (REPLACE /$(Configuration) "/${TARGET}.dir/$(ConfigurationName)" INT_DIR ${INT_DIR})
         endif ()
-        if (USE_MKLINK)
-            string (REGEX REPLACE \\.dir$ .lnk INT_DIR ${INT_DIR})
-        endif ()
-    elseif (XCODE)
+    else ()
+        set (INT_DIR ${INT_DIR}/CMakeFiles/${TARGET}.dir)
+    endif ()
+    if (XCODE)
         string (REPLACE /$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) "" INT_DIR ${INT_DIR})
         string (REGEX REPLACE \\.dir$ .lnk INT_DIR ${INT_DIR})
     endif ()
-    
     foreach (SOURCE ${SOURCES})
         get_filename_component (NAME ${SOURCE} NAME)
         if (NAME MATCHES \\.c.*$|\\.mm?$|\\.S$|\\.s$)
             if (MSVC OR XCODE)
-                string (REGEX REPLACE \\.c.*$|\\.mm?$|\\.S$|\\.s$ "" NAME ${NAME}) 
+                string (REGEX REPLACE \\.c.*$|\\.mm?$|\\.S$|\\.s$ "" NAME ${NAME})
             endif ()
             set (SYS_DIR "")
             if (NOT MSVC AND NOT XCODE)