From cc909507f4b4bf846140a2b0c14f8083ecf518ed Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 5 Aug 2015 12:34:11 -0700 Subject: [PATCH] get GLEW for all platforms as external project --- CMakeLists.txt | 1 + cmake/externals/glew/CMakeLists.txt | 60 ++++++++++++++--------------- cmake/modules/FindGLEW.cmake | 45 +++++++--------------- libraries/gpu/src/gpu/GPUConfig.h | 8 ++-- 4 files changed, 46 insertions(+), 68 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bc4dc53f65..38bcb42e26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,6 +186,7 @@ option(GET_POLYVOX "Get polyvox library automatically as external project" 1) option(GET_OPENVR "Get OpenVR library automatically as external project" 1) option(GET_BOOSTCONFIG "Get Boost-config library automatically as external project" 1) option(GET_OGLPLUS "Get OGLplus library automatically as external project" 1) +option(GET_GLEW "Get GLEW library automatically as external project" 1) option(USE_NSIGHT "Attempt to find the nSight libraries" 1) diff --git a/cmake/externals/glew/CMakeLists.txt b/cmake/externals/glew/CMakeLists.txt index f943fd2129..a0f7069197 100644 --- a/cmake/externals/glew/CMakeLists.txt +++ b/cmake/externals/glew/CMakeLists.txt @@ -1,34 +1,30 @@ +set(EXTERNAL_NAME glew) + +if (ANDROID) + set(ANDROID_CMAKE_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DANDROID_NATIVE_API_LEVEL=19") +endif () + +include(ExternalProject) +ExternalProject_Add( + ${EXTERNAL_NAME} + URL http://hifi-public.s3.amazonaws.com/dependencies/glew_simple.zip + URL_MD5 95a97d3690aa6ba8f1cf5941880efbf6 + CONFIGURE_COMMAND CMAKE_ARGS ${ANDROID_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX:PATH= + LOG_DOWNLOAD 1 +) + +# Hide this external target (for ide users) +set_target_properties(${EXTERNAL_NAME} PROPERTIES FOLDER "hidden/externals") + +ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR) + +string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) +set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${INSTALL_DIR}/include CACHE PATH "List of glew include directories") + if (WIN32) - set(EXTERNAL_NAME glew) - - include(ExternalProject) - ExternalProject_Add( - ${EXTERNAL_NAME} - URL http://hifi-public.s3.amazonaws.com/dependencies/glew-1.10.0-win32.zip - URL_MD5 37514e4e595a3b3dc587eee8f7e8ec2f - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - LOG_DOWNLOAD 1 - ) - - # Hide this external target (for ide users) - set_target_properties(${EXTERNAL_NAME} PROPERTIES FOLDER "hidden/externals") - - ExternalProject_Get_Property(${EXTERNAL_NAME} SOURCE_DIR) - - string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) - set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${SOURCE_DIR}/include CACHE PATH "List of glew include directories") - - if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(_LIB_DIR ${SOURCE_DIR}/lib/Release/x64) - set(${EXTERNAL_NAME_UPPER}_DLL_PATH ${SOURCE_DIR}/bin/Release/x64 CACHE FILEPATH "Location of GLEW DLL") - else() - set(_LIB_DIR ${SOURCE_DIR}/lib/Release/Win32) - set(${EXTERNAL_NAME_UPPER}_DLL_PATH ${SOURCE_DIR}/bin/Release/Win32 CACHE FILEPATH "Location of GLEW DLL") - endif() - - set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${_LIB_DIR}/glew32.lib CACHE FILEPATH "Location of GLEW release library") - set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG "" CACHE FILEPATH "Location of GLEW debug library") - + set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${INSTALL_DIR}/lib/glew_d.lib CACHE FILEPATH "Path to glew debug library") + set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/lib/glew.lib CACHE FILEPATH "Path to glew release library") +else () + set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/lib/libglew.a CACHE FILEPATH "Path to glew release library") + set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG "" CACHE FILEPATH "Path to glew debug library") endif () \ No newline at end of file diff --git a/cmake/modules/FindGLEW.cmake b/cmake/modules/FindGLEW.cmake index b1789fb614..b2a9ec7ac7 100644 --- a/cmake/modules/FindGLEW.cmake +++ b/cmake/modules/FindGLEW.cmake @@ -1,7 +1,7 @@ # # FindGLEW.cmake # -# Try to find GLEW library and include path. +# Try to find GLEW library and include path. Note that this only handles static GLEW. # Once done this will define # # GLEW_FOUND @@ -18,39 +18,20 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # -if (WIN32) - include("${MACRO_DIR}/HifiLibrarySearchHints.cmake") - hifi_library_search_hints("glew") - - find_path(GLEW_INCLUDE_DIRS GL/glew.h PATH_SUFFIXES include HINTS ${GLEW_SEARCH_DIRS}) - - find_library(GLEW_LIBRARY_RELEASE glew32 PATH_SUFFIXES "lib/Release/Win32" "lib" HINTS ${GLEW_SEARCH_DIRS}) - find_library(GLEW_LIBRARY_DEBUG glew32d PATH_SUFFIXES "lib/Debug/Win32" "lib" HINTS ${GLEW_SEARCH_DIRS}) - - find_path(GLEW_DLL_PATH glew32.dll PATH_SUFFIXES "bin/Release/Win32" HINTS ${GLEW_SEARCH_DIRS}) - - include(SelectLibraryConfigurations) - select_library_configurations(GLEW) - - set(GLEW_LIBRARIES ${GLEW_LIBRARY}) +include("${MACRO_DIR}/HifiLibrarySearchHints.cmake") +hifi_library_search_hints("glew") - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(GLEW DEFAULT_MSG GLEW_INCLUDE_DIRS GLEW_LIBRARIES GLEW_DLL_PATH) - - add_paths_to_fixup_libs(${GLEW_DLL_PATH}) -elseif (APPLE) -else () - find_path(GLEW_INCLUDE_DIR GL/glew.h) - find_library(GLEW_LIBRARY NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64) +find_path(GLEW_INCLUDE_DIRS GL/glew.h PATH_SUFFIXES include HINTS ${GLEW_SEARCH_DIRS}) - set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR}) - set(GLEW_LIBRARIES ${GLEW_LIBRARY}) +find_library(GLEW_LIBRARY_RELEASE glew32 PATH_SUFFIXES "lib/Release/Win32" "lib" HINTS ${GLEW_SEARCH_DIRS}) +find_library(GLEW_LIBRARY_DEBUG glew32d PATH_SUFFIXES "lib/Debug/Win32" "lib" HINTS ${GLEW_SEARCH_DIRS}) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(GLEW - REQUIRED_VARS GLEW_INCLUDE_DIR GLEW_LIBRARY) +include(SelectLibraryConfigurations) +select_library_configurations(GLEW) - mark_as_advanced(GLEW_INCLUDE_DIR GLEW_LIBRARY) - -endif () +set(GLEW_LIBRARIES ${GLEW_LIBRARY}) +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(GLEW DEFAULT_MSG GLEW_INCLUDE_DIRS GLEW_LIBRARIES) + +message(STATUS "Found GLEW - Assuming that GLEW is static and defining GLEW_STATIC") \ No newline at end of file diff --git a/libraries/gpu/src/gpu/GPUConfig.h b/libraries/gpu/src/gpu/GPUConfig.h index f63474e13d..0aa7ce4020 100644 --- a/libraries/gpu/src/gpu/GPUConfig.h +++ b/libraries/gpu/src/gpu/GPUConfig.h @@ -19,14 +19,14 @@ #if defined(__APPLE__) -#include "../GL/glew.h" +#include #define GPU_FEATURE_PROFILE GPU_CORE #define GPU_INPUT_PROFILE GPU_CORE_41 #elif defined(WIN32) -#include "../GL/glew.h" -#include "../GL/wglew.h" +#include +#include #define GPU_FEATURE_PROFILE GPU_CORE #define GPU_INPUT_PROFILE GPU_CORE_41 @@ -35,7 +35,7 @@ #else -#include "../GL/glew.h" +#include #define GPU_FEATURE_PROFILE GPU_CORE #define GPU_INPUT_PROFILE GPU_CORE_41