Browse Source

Fix build system to find 32-bit packages correctly on Linux.

Yao Wei Tjong 姚伟忠 10 years ago
parent
commit
1066c52fb6

+ 2 - 2
CMake/Modules/FindPulseAudio.cmake

@@ -22,7 +22,7 @@
 
 # Find PulseAudio development library
 #
-#  PA_FOUND
+#  PULSEAUDIO_FOUND
 #  PA_INCLUDE_DIRS
 #  PA_LIBRARIES
 #  PA_VERSION
@@ -38,6 +38,6 @@ if (NOT PA_VERSION AND PA_INCLUDE_DIRS AND EXISTS ${PA_INCLUDE_DIRS}/pulse/versi
 endif ()
 
 include (FindPackageHandleStandardArgs)
-find_package_handle_standard_args (PA REQUIRED_VARS PA_LIBRARIES PA_INCLUDE_DIRS VERSION_VAR PA_VERSION FAIL_MESSAGE "Could NOT find PulseAudio development library")
+find_package_handle_standard_args (PulseAudio REQUIRED_VARS PA_LIBRARIES PA_INCLUDE_DIRS VERSION_VAR PA_VERSION FAIL_MESSAGE "Could NOT find PulseAudio development library")
 
 mark_as_advanced (PA_INCLUDE_DIRS PA_LIBRARIES)

+ 1 - 1
CMake/Modules/FindReadline.cmake

@@ -36,6 +36,6 @@ find_path (READLINE_INCLUDE_DIRS NAMES readline.h HINTS ${INC_HINTS} PATH_SUFFIX
 find_library (READLINE_LIBRARIES NAMES readline HINTS ${LIB_HINTS} DOC "Readline library")
 
 include (FindPackageHandleStandardArgs)
-find_package_handle_standard_args (READLINE REQUIRED_VARS READLINE_LIBRARIES READLINE_INCLUDE_DIRS FAIL_MESSAGE "Could NOT find Readline development library")
+find_package_handle_standard_args (Readline REQUIRED_VARS READLINE_LIBRARIES READLINE_INCLUDE_DIRS FAIL_MESSAGE "Could NOT find Readline development library")
 
 mark_as_advanced (READLINE_INCLUDE_DIRS READLINE_LIBRARIES)

+ 3 - 3
CMake/Modules/FindUrho3D.cmake

@@ -171,7 +171,7 @@ else ()
             break ()
         endif ()
         # Set to search in 'lib' or 'lib64' based on the ABI being tested
-        set_property (GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ${ABI_64BIT})
+        set_property (GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ${ABI_64BIT})    # Leave this global property setting afterwards, do not restore it to its previous value
         find_library (URHO3D_LIBRARIES NAMES Urho3D ${URHO3D_LIB_SEARCH_HINT} PATH_SUFFIXES ${PATH_SUFFIX} ${SEARCH_OPT} DOC "Urho3D library directory")
         if (WIN32)
             # For Windows platform, give a second chance to search for a debug version of the library
@@ -249,9 +249,9 @@ else ()
                 set (URHO3D_RUN_RESULT 0)
                 file (READ ${URHO3D_BASE_INCLUDE_DIR}/Urho3D.h URHO3D_RUN_RESULT__TRYRUN_OUTPUT)
             endif ()
-            # BCM_VC_LIBRARIES variable is already set by FindBCM_VC module on RPI platform
+            # VIDEOCORE_LIBRARIES variable is already set by FindVideoCore module on RPI platform
             try_run (URHO3D_RUN_RESULT URHO3D_COMPILE_RESULT ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_LIST_DIR}/CheckUrho3DLibrary.cpp
-                CMAKE_FLAGS ${IOS_FLAGS} -DLINK_LIBRARIES:STRING=${URHO3D_LIBRARIES}\;${BCM_VC_LIBRARIES}\;${ANDROID_LIBRARIES} -DINCLUDE_DIRECTORIES:STRING=${URHO3D_INCLUDE_DIRS} ${COMPILER_32BIT_FLAG} ${COMPILER_STATIC_FLAG}
+                CMAKE_FLAGS ${IOS_FLAGS} -DLINK_LIBRARIES:STRING=${URHO3D_LIBRARIES}\;${VIDEOCORE_LIBRARIES}\;${ANDROID_LIBRARIES} -DINCLUDE_DIRECTORIES:STRING=${URHO3D_INCLUDE_DIRS} ${COMPILER_32BIT_FLAG} ${COMPILER_STATIC_FLAG}
                 COMPILE_OUTPUT_VARIABLE TRY_COMPILE_OUT RUN_OUTPUT_VARIABLE TRY_RUN_OUT)
             set (URHO3D_COMPILE_RESULT ${URHO3D_COMPILE_RESULT} CACHE INTERNAL "FindUrho3D module's compile result")
             if (URHO3D_COMPILE_RESULT AND URHO3D_RUN_RESULT EQUAL 0)

+ 9 - 9
CMake/Modules/FindBCM_VC.cmake → CMake/Modules/FindVideoCore.cmake

@@ -22,9 +22,9 @@
 
 # Find Broadcom VideoCore firmware installation
 #
-#  BCM_VC_FOUND
-#  BCM_VC_INCLUDE_DIRS
-#  BCM_VC_LIBRARIES
+#  VIDEOCORE_FOUND
+#  VIDEOCORE_INCLUDE_DIRS
+#  VIDEOCORE_LIBRARIES
 #
 
 # Only need to cater for raspbian as they are not in CMAKE_SYSTEM_PATH
@@ -32,7 +32,7 @@ set (BCM_VC_INC_SEARCH_PATH /opt/vc/include)
 set (BCM_VC_LIB_SEARCH_PATH /opt/vc/lib)
 
 # Assume all the other headers are installed at same relative path as bcm_host.h
-find_path (BCM_VC_INCLUDE_DIRS bcm_host.h PATHS ${BCM_VC_INC_SEARCH_PATH} PATH_SUFFIXES vc DOC "Broadcom VideoCore include directory")
+find_path (VIDEOCORE_INCLUDE_DIRS bcm_host.h PATHS ${BCM_VC_INC_SEARCH_PATH} PATH_SUFFIXES vc DOC "Broadcom VideoCore include directory")
 
 # Assume all the other libs are installed at the same relative path as libbcm_host.so
 find_library (BCM_VC_LIB_BCM_HOST bcm_host PATHS ${BCM_VC_LIB_SEARCH_PATH} PATH_SUFFIXES vc DOC "Broadcom VideoCore BCM_HOST library directory")
@@ -40,10 +40,10 @@ find_library (BCM_VC_LIB_EGL EGL PATHS ${BCM_VC_LIB_SEARCH_PATH} PATH_SUFFIXES v
 find_library (BCM_VC_LIB_GLES2 GLESv2 PATHS ${BCM_VC_LIB_SEARCH_PATH} PATH_SUFFIXES vc DOC "Broadcom VideoCore GLESv2 library directory")
 
 include (FindPackageHandleStandardArgs)
-find_package_handle_standard_args (BCM_VC REQUIRED_VARS BCM_VC_LIB_BCM_HOST BCM_VC_LIB_EGL BCM_VC_LIB_GLES2 BCM_VC_INCLUDE_DIRS FAIL_MESSAGE "Could NOT find Broadcom VideoCore firmware")
-if (BCM_VC_FOUND)
-    list (APPEND BCM_VC_INCLUDE_DIRS ${BCM_VC_INCLUDE_DIRS}/interface/vcos/pthreads)  # Note: variable change to list context after this
-    set (BCM_VC_LIBRARIES ${BCM_VC_LIB_BCM_HOST} ${BCM_VC_LIB_EGL} ${BCM_VC_LIB_GLES2})
+find_package_handle_standard_args (VideoCore REQUIRED_VARS BCM_VC_LIB_BCM_HOST BCM_VC_LIB_EGL BCM_VC_LIB_GLES2 VIDEOCORE_INCLUDE_DIRS FAIL_MESSAGE "Could NOT find Broadcom VideoCore firmware")
+if (VIDEOCORE_FOUND)
+    list (APPEND VIDEOCORE_INCLUDE_DIRS ${VIDEOCORE_INCLUDE_DIRS}/interface/vcos/pthreads)  # Note: variable change to list context after this
+    set (VIDEOCORE_LIBRARIES ${BCM_VC_LIB_BCM_HOST} ${BCM_VC_LIB_EGL} ${BCM_VC_LIB_GLES2})
 endif ()
 
-mark_as_advanced (BCM_VC_INCLUDE_DIRS BCM_VC_LIBRARIES BCM_VC_LIB_BCM_HOST BCM_VC_LIB_EGL BCM_VC_LIB_GLES2)
+mark_as_advanced (VIDEOCORE_INCLUDE_DIRS VIDEOCORE_LIBRARIES BCM_VC_LIB_BCM_HOST BCM_VC_LIB_EGL BCM_VC_LIB_GLES2)

+ 10 - 6
CMake/Modules/Urho3D-CMake-common.cmake

@@ -142,8 +142,8 @@ else ()
 endif ()
 # For Raspbery Pi, find Broadcom VideoCore IV firmware
 if (RPI)
-    find_package (BCM_VC REQUIRED)
-    include_directories (${BCM_VC_INCLUDE_DIRS})
+    find_package (VideoCore REQUIRED)
+    include_directories (${VIDEOCORE_INCLUDE_DIRS})
 endif ()
 if (CMAKE_PROJECT_NAME STREQUAL Urho3D)
     set (URHO3D_LIB_TYPE STATIC CACHE STRING "Specify Urho3D library type, possible values are STATIC (default) and SHARED")
@@ -206,6 +206,10 @@ if (CMAKE_PROJECT_NAME STREQUAL Urho3D)
         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)
     endif ()
+    # Set to search in 'lib' or 'lib64' based on the chosen ABI
+    if (NOT CMAKE_HOST_WIN32)
+        set_property (GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ${URHO3D_64BIT})
+    endif ()
 else ()
     set (URHO3D_LIB_TYPE "" CACHE STRING "Specify Urho3D library type, possible values are STATIC and SHARED")
     set (URHO3D_HOME "" CACHE PATH "Path to Urho3D build tree or SDK installation location (downstream project only)")
@@ -494,7 +498,7 @@ if (WIN32)
     if (DIRECT3D_INCLUDE_DIRS)
         include_directories (${DIRECT3D_INCLUDE_DIRS})
     endif ()
-else ()
+elseif ((URHO3D_LUA AND NOT URHO3D_LUAJIT) OR URHO3D_DATABASE_SQLITE)
     # Find GNU Readline development library for Lua interpreter and SQLite's isql
     find_package (Readline)
 endif ()
@@ -534,7 +538,7 @@ if (APPLE)
         add_definitions (-DIOS)
         if (URHO3D_64BIT)
             if (DEFINED ENV{XCODE_64BIT_ONLY})                  # This environment variable is set automatically when ccache is just being cleared in Travis CI VM
-                set (CMAKE_OSX_ARCHITECTURES "arm64 x86_64")    # This is a hack to temporarily only build 64-bit archs to reduce overall build time
+                set (CMAKE_OSX_ARCHITECTURES "arm64 x86_64")    # This is a hack to temporarily only build 64-bit archs to reduce overall build time for one build
             else ()
                 set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD))
             endif ()
@@ -547,7 +551,7 @@ if (APPLE)
             # OSX-specific setup
             if (URHO3D_64BIT)
                 if (DEFINED ENV{XCODE_64BIT_ONLY})
-                    set (CMAKE_OSX_ARCHITECTURES x86_64)        # This is a hack
+                    set (CMAKE_OSX_ARCHITECTURES x86_64)        # This is a hack, idem; the idea is to finish within the allocated time and cache the objects for subsequent builds
                 else ()
                     set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD_32_64_BIT))
                 endif ()
@@ -1494,7 +1498,7 @@ macro (define_dependency_libs TARGET)
                 list (APPEND LIBS dl rt)
             endif ()
             if (RPI)
-                list (APPEND ABSOLUTE_PATH_LIBS ${BCM_VC_LIBRARIES})
+                list (APPEND ABSOLUTE_PATH_LIBS ${VIDEOCORE_LIBRARIES})
             endif ()
         endif ()
     endif ()

+ 1 - 1
CMake/Toolchains/raspberrypi.toolchain.cmake

@@ -77,7 +77,7 @@ set (CMAKE_OBJDUMP      ${RPI_PREFIX}-objdump  CACHE PATH "objdump")
 set (CMAKE_RANLIB       ${RPI_PREFIX}-ranlib   CACHE PATH "ranlib")
 
 # specify the system root
-if (NOT RPI_SYSROOT OR NOT BCM_VC_INCLUDE_DIRS OR NOT BCM_VC_LIBRARIES)
+if (NOT RPI_SYSROOT OR NOT VIDEOCORE_INCLUDE_DIRS OR NOT VIDEOCORE_LIBRARIES)
     if (DEFINED ENV{RPI_SYSROOT})
         file (TO_CMAKE_PATH $ENV{RPI_SYSROOT} RPI_SYSROOT)
     endif ()

+ 1 - 1
Source/ThirdParty/SDL/CMakeLists.txt

@@ -128,7 +128,7 @@ else ()
     include_directories (${ALSA_INCLUDE_DIRS})
 
     find_package (PulseAudio)
-    if (PA_FOUND)
+    if (PULSEAUDIO_FOUND)
       include_directories (${PA_INCLUDE_DIRS})
       get_filename_component (PA_SIMPLE ${PA_LIBRARIES} NAME)
       add_definitions (-DSDL_AUDIO_DRIVER_PULSEAUDIO=1 -DSDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC="${PA_SIMPLE}")