raw
This commit is contained in:
109
Thirdparty/Pangolin/CMakeLists.txt
vendored
Normal file
109
Thirdparty/Pangolin/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
project("Pangolin")
|
||||
set(PANGOLIN_VERSION_MAJOR 0)
|
||||
set(PANGOLIN_VERSION_MINOR 6)
|
||||
set(PANGOLIN_VERSION ${PANGOLIN_VERSION_MAJOR}.${PANGOLIN_VERSION_MINOR})
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/")
|
||||
|
||||
# Platform configuration vars
|
||||
include(SetPlatformVars)
|
||||
|
||||
SET(CPACK_GENERATOR "DEB")
|
||||
|
||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Steven Lovegrove")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${PANGOLIN_VERSION_MAJOR})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${PANGOLIN_VERSION_MINOR})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH "0")
|
||||
include(CPack)
|
||||
|
||||
option( BUILD_TESTS "Build Tests" ON )
|
||||
option( BUILD_TOOLS "Build Examples" ON )
|
||||
option( BUILD_EXAMPLES "Build Tools" ON )
|
||||
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
|
||||
if(_WIN_)
|
||||
option( BUILD_SHARED_LIBS "Build Shared Library" OFF)
|
||||
option( BUILD_EXTERN_GLEW "Automatically download, build and compile GLEW" ON)
|
||||
option( BUILD_EXTERN_LIBPNG "Automatically download, build and compile libpng" ON)
|
||||
option( BUILD_EXTERN_LIBJPEG "Automatically download, build and compile libjpeg" ON)
|
||||
option( MSVC_USE_STATIC_CRT "Use static C Runtime with MSVC, /MT instead of /MD" ON)
|
||||
|
||||
# Make sure there are no erroneous C Runtime flags
|
||||
list(APPEND FLAG_VARS
|
||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
)
|
||||
if(MSVC_USE_STATIC_CRT)
|
||||
foreach(FLAG_VAR ${FLAG_VARS})
|
||||
string(REGEX REPLACE "/MD" "/MT" NEW_FLAGS "${${FLAG_VAR}}")
|
||||
set(${FLAG_VAR} "${NEW_FLAGS}" CACHE STRING "" FORCE)
|
||||
endforeach()
|
||||
else()
|
||||
foreach(FLAG_VAR ${FLAG_VARS})
|
||||
string(REGEX REPLACE "/MT" "/MD" NEW_FLAGS "${${FLAG_VAR}}")
|
||||
set(${FLAG_VAR} "${NEW_FLAGS}" CACHE STRING "" FORCE)
|
||||
endforeach()
|
||||
endif()
|
||||
else()
|
||||
option( BUILD_SHARED_LIBS "Build Shared Library" ON)
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
set( CMAKE_CXX_FLAGS "-Wall -Wextra ${CMAKE_CXX_FLAGS}" )
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
set(ANDROID_PACKAGE_NAME "com.github.stevenlovegrove.pangolin")
|
||||
include(AndroidUtils)
|
||||
endif()
|
||||
|
||||
if(ANDROID OR IOS)
|
||||
set(HAVE_GLES 1)
|
||||
option(BUILD_FOR_GLES_2 "Build for OpenGL ES 2 instead of ES 1" ON )
|
||||
if(BUILD_FOR_GLES_2)
|
||||
set(HAVE_GLES_2 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(_OSX_)
|
||||
set(CMAKE_MACOSX_RPATH ON)
|
||||
endif()
|
||||
|
||||
# Overide with cmake -DCMAKE_BUILD_TYPE=Debug {dir}
|
||||
if( NOT CMAKE_BUILD_TYPE AND NOT _WIN_ )
|
||||
message("Build type not set (defaults to release)")
|
||||
message("-DCMAKE_BUILD_TYPE=Debug for debug")
|
||||
set( CMAKE_BUILD_TYPE Release )
|
||||
endif()
|
||||
|
||||
string(TOLOWER ${PROJECT_NAME} LIBRARY_NAME)
|
||||
|
||||
# make an uninstall target
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE @ONLY
|
||||
)
|
||||
|
||||
add_custom_target(pangolin_uninstall
|
||||
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
||||
|
||||
add_subdirectory("external")
|
||||
add_subdirectory("src")
|
||||
|
||||
if(BUILD_TESTS)
|
||||
set(Pangolin_DIR ${Pangolin_BINARY_DIR}/src)
|
||||
add_subdirectory("test")
|
||||
endif()
|
||||
|
||||
if(BUILD_TOOLS)
|
||||
set(Pangolin_DIR ${Pangolin_BINARY_DIR}/src)
|
||||
add_subdirectory(tools)
|
||||
endif()
|
||||
|
||||
if(BUILD_EXAMPLES)
|
||||
set(Pangolin_DIR ${Pangolin_BINARY_DIR}/src)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
Reference in New Issue
Block a user