Explorar o código

Add AngelScript header into built-in 'install' target. Closes #121.

Yao Wei Tjong 姚伟忠 %!s(int64=12) %!d(string=hai) anos
pai
achega
be85ee454c

+ 15 - 4
Source/CMake/Modules/FindUrho3D.cmake

@@ -51,7 +51,7 @@ endif ()
 if (CMAKE_PROJECT_NAME MATCHES Urho3D.* AND PROJECT_ROOT_DIR)
     set (URHO3D_HOME ${PROJECT_ROOT_DIR} CACHE PATH "Path to Urho3D project root tree" FORCE)
     set (IS_INTERNAL 1)
-else ()
+elseif (NOT URHO3D_HOME AND DEFINED ENV{URHO3D_HOME})
     file (TO_CMAKE_PATH "$ENV{URHO3D_HOME}" URHO3D_HOME)
     set (URHO3D_HOME ${URHO3D_HOME} CACHE PATH "Path to Urho3D project root tree")
 endif ()
@@ -64,7 +64,11 @@ if (URHO3D_HOME)
         foreach (DIR Audio Container Core Engine Graphics Input IO LuaScript Math Navigation Network Physics Resource Scene Script UI)
             list (APPEND URHO3D_INCLUDE_DIR ${SOURCE_TREE_PATH}/${DIR})     # Note: variable change to list context after this
         endforeach ()
-        foreach (DIR Bullet/src kNet/include SDL/include)
+        set (DIRS Bullet/src kNet/include SDL/include)
+        if (ENABLE_ANGELSCRIPT)
+            list (APPEND DIRS AngelScript/include)
+        endif ()
+        foreach (DIR ${DIRS})
             list (APPEND URHO3D_INCLUDE_DIR ${URHO3D_HOME}/Source/ThirdParty/${DIR})
         endforeach ()
 
@@ -98,7 +102,10 @@ else ()
     # Note that the prefix path should not contain the "/include" or "/lib"
     # For example on Windows platform: URHO3D_INSTALL_PREFIX=C:/Users/john/Urho3D if the SDK is installed using CMAKE_INSTALL_PREFIX=C:/Users/john/Urho3D
     # For example on Linux platform: URHO3D_INSTALL_PREFIX=/home/john/usr/local if the SDK is installed using DESTDIR=/home/john and CMAKE_INSTALL_PREFIX=/usr/local
-    set (CMAKE_PREFIX_PATH $ENV{URHO3D_INSTALL_PREFIX} CACHE PATH "Prefix path to Urho3D SDK installation")
+    if (NOT CMAKE_PREFIX_PATH AND DEFINED ENV{URHO3D_INSTALL_PREFIX})
+        file (TO_CMAKE_PATH "$ENV{URHO3D_INSTALL_PREFIX}" URHO3D_INSTALL_PREFIX)
+        set (CMAKE_PREFIX_PATH ${URHO3D_INSTALL_PREFIX} CACHE PATH "Prefix path to Urho3D SDK installation")
+    endif ()
     if (WIN32)
         set (URHO3D_INC_SEARCH_PATH include)
         set (URHO3D_LIB_SEARCH_PATH lib)
@@ -115,7 +122,11 @@ else ()
 
     if (URHO3D_INCLUDE_DIR)
         set (BASE_DIR ${URHO3D_INCLUDE_DIR})
-        foreach (DIR Bullet kNet SDL)
+        set (DIRS Bullet kNet SDL)
+        if (ENABLE_ANGELSCRIPT)
+            list (APPEND DIRS AngelScript)
+        endif ()
+        foreach (DIR ${DIRS})
             list (APPEND URHO3D_INCLUDE_DIR ${BASE_DIR}/${DIR})     # Note: variable change to list context after this, so we need BASE_DIR to remain the same
         endforeach ()
     endif ()

+ 4 - 4
Source/CMake/Modules/Urho3D-CMake-magic.cmake

@@ -454,12 +454,12 @@ macro (add_android_native_init)
     # The SDL_Main() is defined by Android application that could be resided in other CMake projects outside of Urho3D CMake project which makes things a little bit complicated
     if (CMAKE_PROJECT_NAME MATCHES Urho3D.*)
         list (APPEND SOURCE_FILES ${PROJECT_ROOT_DIR}/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c)
-    elseif (EXISTS $ENV{URHO3D_HOME}/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c)
+    elseif (EXISTS ${URHO3D_HOME}/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c)
         # Use Urho3D source installation
-        list (APPEND SOURCE_FILES $ENV{URHO3D_HOME}/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c)
-    elseif (EXISTS $ENV{URHO3D_INSTALL_PREFIX}/share/${PATH_SUFFIX}/templates/android/SDL_android_main.c)
+        list (APPEND SOURCE_FILES ${URHO3D_HOME}/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c)
+    elseif (EXISTS ${CMAKE_PREFIX_PATH}/share/${PATH_SUFFIX}/templates/android/SDL_android_main.c)
         # Use Urho3D SDK installation on non-default installation location (PATH_SUFFIX variable is set in FindUrho3D.cmake module)
-        list (APPEND SOURCE_FILES $ENV{URHO3D_INSTALL_PREFIX}/share/${PATH_SUFFIX}/templates/android/SDL_android_main.c)
+        list (APPEND SOURCE_FILES ${CMAKE_PREFIX_PATH}/share/${PATH_SUFFIX}/templates/android/SDL_android_main.c)
     elseif (EXISTS ${CMAKE_INSTALL_PREFIX}/share/${PATH_SUFFIX}/templates/android/SDL_android_main.c)
         # Use Urho3D SDK installation on system default installation location
         list (APPEND SOURCE_FILES ${CMAKE_INSTALL_PREFIX}/share/${PATH_SUFFIX}/templates/android/SDL_android_main.c)

+ 5 - 1
Source/ThirdParty/AngelScript/CMakeLists.txt

@@ -29,8 +29,12 @@ endif ()
 
 set (SOURCE_FILES ${CPP_FILES} ${ASM_FILES} ${H_FILES})
 
+# Install dependency for Engine/Script/APITemplates.h
+install (DIRECTORY include/ DESTINATION ${DEST_INCLUDE_DIR}/AngelScript USE_SOURCE_PERMISSIONS FILES_MATCHING PATTERN *.h)     # Note: the trailing slash is significant
+set (INSTALL_INCLUDE_DIRS ${INSTALL_INCLUDE_DIRS} AngelScript PARENT_SCOPE)
+
 # Define dependency libs
-set (INCLUDE_DIRS_ONLY include source)
+set (INCLUDE_DIRS_ONLY include)
 
 # Setup target
 setup_library ()