Browse Source

For Travis CI - add CI build jobs for Direct3D 11.
Fix Emscripten build due to earlier faulty fix on MinGW build to support building of PackageTool for both host and target systems.

Yao Wei Tjong 姚伟忠 10 years ago
parent
commit
41d9ab29a9

+ 5 - 2
.travis.yml

@@ -35,12 +35,15 @@ env:
     - WINDOWS=1 URHO3D_LIB_TYPE=SHARED
     - WINDOWS=1 URHO3D_LIB_TYPE=SHARED
     - WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_OPENGL=0
     - WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_OPENGL=0
     - WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_OPENGL=0
     - WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_OPENGL=0
+    - WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_D3D11=1
+    - WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_D3D11=1
+    - LINUX=1   URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
     - LINUX=1   URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
     - LINUX=1   URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
     - LINUX=1   URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
     - LINUX=1   URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
     - WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
     - WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
     - WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
     - WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
-    - WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0 URHO3D_OPENGL=0
-    - WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 URHO3D_OPENGL=0
+    - WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0 URHO3D_D3D11=1
+    - WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 URHO3D_D3D11=1
 matrix:
 matrix:
   fast_finish: true
   fast_finish: true
   include:
   include:

+ 4 - 2
CMake/Modules/Urho3D-CMake-common.cmake

@@ -1109,8 +1109,10 @@ endmacro ()
 
 
 # Macro for adjusting target output name by dropping _suffix from the target name
 # Macro for adjusting target output name by dropping _suffix from the target name
 macro (adjust_target_name)
 macro (adjust_target_name)
-    string (REGEX REPLACE _.*$ "" OUTPUT_NAME ${TARGET_NAME})
-    set_target_properties (${TARGET_NAME} PROPERTIES OUTPUT_NAME ${OUTPUT_NAME})
+    if (TARGET_NAME MATCHES _.*$)
+        string (REGEX REPLACE _.*$ "" OUTPUT_NAME ${TARGET_NAME})
+        set_target_properties (${TARGET_NAME} PROPERTIES OUTPUT_NAME ${OUTPUT_NAME})
+    endif ()
 endmacro ()
 endmacro ()
 
 
 # Macro for setting up a test case
 # Macro for setting up a test case

+ 5 - 1
CMakeLists.txt

@@ -137,7 +137,11 @@ if (URHO3D_64BIT)
 endif ()
 endif ()
 set (CPACK_SYSTEM_NAME ${CPACK_SYSTEM_NAME}-${URHO3D_LIB_TYPE})
 set (CPACK_SYSTEM_NAME ${CPACK_SYSTEM_NAME}-${URHO3D_LIB_TYPE})
 if (WIN32 AND NOT URHO3D_OPENGL)
 if (WIN32 AND NOT URHO3D_OPENGL)
-    set (CPACK_SYSTEM_NAME ${CPACK_SYSTEM_NAME}-D3D)    # Stands for Direct 3D
+    if (URHO3D_D3D11)
+        set (CPACK_SYSTEM_NAME ${CPACK_SYSTEM_NAME}-3D11)   # The artifact name has a space constraint on our website when viewed in a mobile browser, 3D11 stands for Direct3D 11
+    else ()
+        set (CPACK_SYSTEM_NAME ${CPACK_SYSTEM_NAME}-3D9)
+    endif ()
 elseif (ANDROID AND X86)    # Take advantage of Android toolchain setting X86 variable to true for both 'x86' and 'x86_64' ABIs
 elseif (ANDROID AND X86)    # Take advantage of Android toolchain setting X86 variable to true for both 'x86' and 'x86_64' ABIs
     set (CPACK_SYSTEM_NAME ${CPACK_SYSTEM_NAME}-IA)     # Stands for Intel Architecture
     set (CPACK_SYSTEM_NAME ${CPACK_SYSTEM_NAME}-IA)     # Stands for Intel Architecture
 elseif (RPI AND RPI_ABI MATCHES ^armeabi-v7a)
 elseif (RPI AND RPI_ABI MATCHES ^armeabi-v7a)

+ 1 - 1
Source/Tools/CMakeLists.txt

@@ -40,7 +40,7 @@ if ((CMAKE_CROSSCOMPILING OR IOS) AND URHO3D_PACKAGING)
         # For iOS target, its host is MacOSX; Also workaround a known CMake/Xcode generator bug which prevents it from installing binaries correctly
         # For iOS target, its host is MacOSX; Also workaround a known CMake/Xcode generator bug which prevents it from installing binaries correctly
         set (OSX_HOST -DCMAKE_OSX_SYSROOT=macosx BUILD_COMMAND bash -c "sed -i '' 's/EFFECTIVE_PLATFORM_NAME//g' CMakeScripts/install_postBuildPhase.make*")
         set (OSX_HOST -DCMAKE_OSX_SYSROOT=macosx BUILD_COMMAND bash -c "sed -i '' 's/EFFECTIVE_PLATFORM_NAME//g' CMakeScripts/install_postBuildPhase.make*")
     endif ()
     endif ()
-    ExternalProject_Add (PackageTool_external
+    ExternalProject_Add (PackageTool
         SOURCE_DIR ${CMAKE_SOURCE_DIR}/Source/Tools/PackageTool
         SOURCE_DIR ${CMAKE_SOURCE_DIR}/Source/Tools/PackageTool
         CMAKE_ARGS -DDEST_RUNTIME_DIR=${CMAKE_BINARY_DIR}/bin/tool -DBAKED_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DBAKED_CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR} ${OSX_HOST})
         CMAKE_ARGS -DDEST_RUNTIME_DIR=${CMAKE_BINARY_DIR}/bin/tool -DBAKED_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DBAKED_CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR} ${OSX_HOST})
     install (PROGRAMS ${CMAKE_BINARY_DIR}/bin/tool/PackageTool DESTINATION ${DEST_RUNTIME_DIR}/tool)
     install (PROGRAMS ${CMAKE_BINARY_DIR}/bin/tool/PackageTool DESTINATION ${DEST_RUNTIME_DIR}/tool)

+ 5 - 1
Source/Tools/PackageTool/CMakeLists.txt

@@ -105,7 +105,10 @@ if (NOT CMAKE_PROJECT_NAME STREQUAL Urho3D)
 endif ()
 endif ()
 
 
 # Define target name
 # Define target name
-set (TARGET_NAME PackageTool)
+if (TARGET PackageTool)     # The target name is already taken by host-tool external project, so use a postfix for the target-tool
+    set (POSTFIX _target)
+endif ()
+set (TARGET_NAME PackageTool${POSTFIX})
 
 
 # Define source files
 # Define source files
 define_source_files (EXTRA_CPP_FILES ${MINI_URHO_CPP_FILES})
 define_source_files (EXTRA_CPP_FILES ${MINI_URHO_CPP_FILES})
@@ -118,3 +121,4 @@ if (APPLE)
     setup_macosx_linker_flags (CMAKE_EXE_LINKER_FLAGS)
     setup_macosx_linker_flags (CMAKE_EXE_LINKER_FLAGS)
 endif ()
 endif ()
 setup_executable ()
 setup_executable ()
+adjust_target_name ()   # Remove postfix from the executable/binary name