|
|
|
cmake_minimum_required (VERSION 3.0)
|
|
|
|
if (NOT CMAKE_VERSION VERSION_LESS "3.1")
|
|
|
|
cmake_policy (SET CMP0054 OLD)
|
|
|
|
endif ()
|
|
|
|
if (NOT CMAKE_VERSION VERSION_LESS "3.3")
|
|
|
|
cmake_policy (SET CMP0063 NEW)
|
|
|
|
set (HONOR_VISIBILITY TRUE)
|
|
|
|
else ()
|
|
|
|
set (HONOR_VISIBILITY FALSE)
|
|
|
|
endif ()
|
|
|
|
project (Epoxy VERSION 1.3.1 LANGUAGES C)
|
|
|
|
set (EPOXY_TARGET_NAME epoxy)
|
|
|
|
set (TARGET_VER 1.3.1_yaronct-5)
|
|
|
|
set (TARGET_ABI_VER 0)
|
|
|
|
set (TARGET_OUTPUT_NAME "${EPOXY_TARGET_NAME}")
|
|
|
|
|
|
|
|
include (GNUInstallDirs)
|
|
|
|
include (CMakeDependentOption)
|
|
|
|
|
|
|
|
set (COMPILER_ID_MSVC MSVC)
|
|
|
|
set (COMPILER_ID_GCC GNU)
|
|
|
|
set (COMPILER_ID_CLANG Clang)
|
|
|
|
|
|
|
|
if ((CMAKE_C_COMPILER_ID STREQUAL COMPILER_ID_GCC) OR (CMAKE_C_COMPILER_ID STREQUAL COMPILER_ID_CLANG))
|
|
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
|
|
|
elseif (NOT CMAKE_VERSION VERSION_LESS "3.1")
|
|
|
|
set (CMAKE_C_STANDARD_REQUIRED TRUE)
|
|
|
|
set (CMAKE_C_STANDARD "99")
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
if ((CMAKE_C_COMPILER_ID STREQUAL COMPILER_ID_GCC) OR (CMAKE_C_COMPILER_ID STREQUAL COMPILER_ID_CLANG))
|
|
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing -Wall -Wextra")
|
|
|
|
elseif (CMAKE_C_COMPILER_ID STREQUAL COMPILER_ID_MSVC)
|
|
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
|
|
|
|
|
find_package (X11)
|
|
|
|
find_package (PythonInterp)
|
|
|
|
find_package (EGL)
|
|
|
|
find_package (GLESv1)
|
|
|
|
find_package (GLESv2)
|
|
|
|
find_package (OpenGL)
|
|
|
|
|
|
|
|
option (EPOXY_REBUILD_FROM_SPECS "Rebuild the auto-generated sources and headers from the specs" FALSE)
|
|
|
|
if (EPOXY_REBUILD_FROM_SPECS AND NOT PYTHONINTERP_FOUND)
|
|
|
|
message (FATAL_ERROR "You've set \"EPOXY_REBUILD_FROM_SPECS\" to \"TRUE\", which requires a python interpreter, but one couldn't be found.")
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
option (EPOXY_SUPPORT_EGL "Build with EGL support" ON)
|
|
|
|
cmake_dependent_option (EPOXY_SUPPORT_WGL "Build with WGL support" ON WIN32 OFF)
|
|
|
|
|
|
|
|
if (X11_FOUND AND OPENGL_FOUND)
|
|
|
|
set (EPOXY_GLX_FOUND TRUE)
|
|
|
|
else ()
|
|
|
|
set (EPOXY_GLX_FOUND FALSE)
|
|
|
|
endif ()
|
|
|
|
cmake_dependent_option (EPOXY_SUPPORT_GLX "Build with GLX support"
|
|
|
|
"${EPOXY_GLX_FOUND}" "NOT (WIN32 OR ANDROID)" OFF)
|
|
|
|
|
|
|
|
option (EPOXY_BUILD_SHARED "Build a shared library" ON)
|
|
|
|
option (EPOXY_BUILD_STATIC "Build a static library" OFF)
|
|
|
|
|
|
|
|
if (DEFINED CMAKE_TOOLCHAIN_FILE)
|
|
|
|
set (EPOXY_BUILD_TESTS_DEFAULT FALSE)
|
|
|
|
else ()
|
|
|
|
set (EPOXY_BUILD_TESTS_DEFAULT TRUE)
|
|
|
|
endif ()
|
|
|
|
option (EPOXY_BUILD_TESTS "Build tests" "${EPOXY_BUILD_TESTS_DEFAULT}")
|
|
|
|
|
|
|
|
cmake_dependent_option (EPOXY_MSVC_USE_RUNTIME_LIBRARY_DLL "Link with MSVC Runtime Library DLL" ON
|
|
|
|
"CMAKE_C_COMPILER_ID STREQUAL COMPILER_ID_MSVC" OFF)
|
|
|
|
|
|
|
|
configure_file ("include/epoxy/config.h.in" "include/epoxy/config.h")
|
|
|
|
|
|
|
|
set (EPOXY_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include"
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/include"
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src")
|
|
|
|
|
|
|
|
if (CMAKE_C_COMPILER_ID STREQUAL COMPILER_ID_MSVC
|
|
|
|
AND NOT EPOXY_MSVC_USE_RUNTIME_LIBRARY_DLL)
|
|
|
|
foreach (flags CMAKE_C_FLAGS
|
|
|
|
CMAKE_C_FLAGS_DEBUG
|
|
|
|
CMAKE_C_FLAGS_RELEASE
|
|
|
|
CMAKE_C_FLAGS_MINSIZEREL
|
|
|
|
CMAKE_C_FLAGS_RELWITHDEBINFO)
|
|
|
|
string (REGEX REPLACE "/MDd" "/MTd" ${flags} "${${flags}}")
|
|
|
|
string (REGEX REPLACE "/MD" "/MT" ${flags} "${${flags}}")
|
|
|
|
endforeach ()
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
add_subdirectory (src)
|
|
|
|
|
|
|
|
if (EPOXY_BUILD_TESTS)
|
|
|
|
enable_testing ()
|
|
|
|
add_subdirectory (test)
|
|
|
|
endif ()
|