Browse Source

Bake URHO3D_TESTING to ensure downstreams get consistent struct size.

Yao Wei Tjong 姚伟忠 10 years ago
parent
commit
da3a82979b

+ 2 - 1
CMake/Modules/FindUrho3D.cmake

@@ -39,6 +39,7 @@
 #  URHO3D_DATABASE_ODBC
 #  URHO3D_DATABASE_SQLITE
 #  URHO3D_LUAJIT
+#  URHO3D_TESTING
 #
 # WIN32 only:
 #  URHO3D_LIBRARIES_REL
@@ -49,6 +50,7 @@
 #  URHO3D_D3D11
 #
 
+set (AUTO_DISCOVER_VARS URHO3D_OPENGL URHO3D_D3D11 URHO3D_SSE URHO3D_DATABASE_ODBC URHO3D_DATABASE_SQLITE URHO3D_LUAJIT URHO3D_TESTING)
 set (PATH_SUFFIX Urho3D)
 if (CMAKE_PROJECT_NAME STREQUAL Urho3D AND TARGET Urho3D)
     # A special case where library location is already known to be in the build tree of Urho3D project
@@ -163,7 +165,6 @@ else ()
         set_property (GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)
     endif ()
     set (URHO3D_LIB_TYPE_SAVED ${URHO3D_LIB_TYPE})  # We need this to reset the auto-discovered URHO3D_LIB_TYPE variable before looping
-    set (AUTO_DISCOVER_VARS URHO3D_OPENGL URHO3D_D3D11 URHO3D_SSE URHO3D_DATABASE_ODBC URHO3D_DATABASE_SQLITE URHO3D_LUAJIT)
     foreach (ABI_64BIT RANGE ${URHO3D_64BIT} 0)
         # Break if the compiler is not multilib-capable and the ABI is not its native
         if ((MSVC OR MINGW OR ANDROID OR RPI OR WEB) AND NOT ABI_64BIT EQUAL URHO3D_DEFAULT_64BIT)

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

@@ -198,6 +198,7 @@ if (CMAKE_PROJECT_NAME STREQUAL Urho3D)
     option (URHO3D_DATABASE_SQLITE "Enable Database support with SQLite embedded")
     cmake_dependent_option (URHO3D_MINIDUMPS "Enable minidumps on crash (VS only)" TRUE "MSVC" FALSE)
     option (URHO3D_FILEWATCHER "Enable filewatcher support" TRUE)
+    option (URHO3D_TESTING "Enable testing support")
     if (CPACK_SYSTEM_NAME STREQUAL Linux)
         cmake_dependent_option (URHO3D_USE_LIB64_RPM "Enable 64-bit RPM CPack generator using /usr/lib64 and disable all other generators (Debian-based host only)" FALSE "URHO3D_64BIT AND NOT HAS_LIB64" FALSE)
         cmake_dependent_option (URHO3D_USE_LIB_DEB "Enable 64-bit DEB CPack generator using /usr/lib and disable all other generators (Redhat-based host only)" FALSE "URHO3D_64BIT AND HAS_LIB64" FALSE)
@@ -223,7 +224,6 @@ if (NOT WEB)
 else ()
     option (URHO3D_THREADING "Enable thread support, on Web platform default to 0, on other platforms default to 1" FALSE)
 endif ()
-option (URHO3D_TESTING "Enable testing support")
 if (URHO3D_TESTING)
     if (WEB)
         set (DEFAULT_TIMEOUT 10)
@@ -343,7 +343,6 @@ endif ()
 # Enable testing
 if (URHO3D_TESTING)
     enable_testing ()
-    add_definitions (-DURHO3D_TESTING)
 endif ()
 
 # Enable coverity scan modeling

+ 1 - 0
CMake/Modules/exportheader.cmake.in

@@ -30,6 +30,7 @@
 #cmakedefine URHO3D_DATABASE_ODBC
 #cmakedefine URHO3D_DATABASE_SQLITE
 #cmakedefine URHO3D_LUAJIT
+#cmakedefine URHO3D_TESTING
 
 #ifdef @STATIC_DEFINE@
 #  define @EXPORT_MACRO_NAME@

+ 1 - 1
Rakefile

@@ -262,7 +262,7 @@ task :ci do
     ENV['build_tree'] = '.' unless ENV['APPVEYOR']
     # Ensure the following variables are auto-discovered during scaffolding test
     ENV['URHO3D_64BIT'] = nil unless ENV['APPVEYOR']    # AppVeyor uses VS generator which always requires URHO3D_64BIT as input variable
-    ['URHO3D_LIB_TYPE', 'URHO3D_OPENGL', 'URHO3D_D3D11', 'URHO3D_SSE', 'URHO3D_DATABASE_ODBC', 'URHO3D_DATABASE_SQLITE', 'URHO3D_LUAJIT'].each { |var| ENV[var] = nil }
+    ['URHO3D_LIB_TYPE', 'URHO3D_OPENGL', 'URHO3D_D3D11', 'URHO3D_SSE', 'URHO3D_DATABASE_ODBC', 'URHO3D_DATABASE_SQLITE', 'URHO3D_LUAJIT', 'URHO3D_TESTING'].each { |var| ENV[var] = nil }
     # Alternate the scaffolding location between Travis CI and AppVeyor for test coverage; Travis CI uses build tree while AppVeyor using source tree
     prefix = ENV['APPVEYOR'] ? '' : '../Build/generated/'
     # Create a new project on the fly that uses newly installed Urho3D SDK

+ 3 - 0
Source/Urho3D/LibraryInfo.cpp

@@ -51,6 +51,9 @@ const char* GetCompilerDefines()
 #endif
 #ifdef URHO3D_LUAJIT
     "#define URHO3D_LUAJIT\n"
+#endif
+#ifdef URHO3D_TESTING
+        "#define URHO3D_TESTING\n"
 #endif
     ;
 }