83 lines
2.5 KiB
CMake
83 lines
2.5 KiB
CMake
cmake_minimum_required(VERSION 3.8)
|
|
|
|
project(glad_all_versions C)
|
|
enable_testing()
|
|
|
|
set(GLAD_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake")
|
|
add_subdirectory("${GLAD_CMAKE_PATH}" "glad_cmake")
|
|
|
|
set(egl_VERSIONS 1.0 1.1 1.2 1.3 1.4 1.5)
|
|
set(gl_VERSIONS 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.1 3.0 3.1 3.2 3.3 4.0 4.1 4.2 4.3 4.4 4.5 4.6)
|
|
set(gles1_VERSIONS 1.0)
|
|
set(gles2_VERSIONS 2.0 3.0 3.1 3.2)
|
|
set(glsc2_VERSIONS 2.0)
|
|
set(glx_VERSIONS 1.0 1.1 1.2 1.3 1.4)
|
|
set(vulkan_VERSIONS 1.0 1.1)
|
|
set(wgl_VERSIONS 1.0)
|
|
|
|
set(gl_PROFILES core compatibility)
|
|
|
|
set(egl_SYSTEMS Linux Windows Darwin)
|
|
set(gl_SYSTEMS Linux Windows Darwin)
|
|
set(gles1_SYSTEMS Linux Windows Darwin)
|
|
set(gles2_SYSTEMS Linux Windows Darwin)
|
|
set(glsc2_SYSTEMS Linux Windows Darwin)
|
|
set(glx_SYSTEMS Linux)
|
|
set(vulkan_SYSTEMS Linux Windows Darwin)
|
|
set(wgl_SYSTEMS Windows)
|
|
|
|
set(APIS egl gl gles1 gles2 glsc2 glx vulkan wgl)
|
|
|
|
macro(merge_version RESULT VERSION)
|
|
string(REPLACE "." "" "${RESULT}" "${VERSION}")
|
|
endmacro()
|
|
|
|
foreach(API ${APIS})
|
|
set(PROFILES "${${API}_PROFILES}")
|
|
if(NOT PROFILES)
|
|
set(PROFILES "X")
|
|
endif()
|
|
foreach(PROFILE ${PROFILES})
|
|
if(PROFILE STREQUAL "X")
|
|
set(PROFILE "")
|
|
endif()
|
|
foreach(VERSION ${${API}_VERSIONS})
|
|
set(APISTR "${API}")
|
|
string(REPLACE "." "" NAME_SUFFIX "${VERSION}")
|
|
if(PROFILE)
|
|
string(APPEND APISTR ":${PROFILE}")
|
|
string(APPEND NAME_SUFFIX "_${PROFILE}")
|
|
endif()
|
|
set(TARGET "glad_${API}_${NAME_SUFFIX}")
|
|
glad_add_library("${TARGET}" EXCLUDE_FROM_ALL
|
|
LOCATION "${PROJECT_BINARY_DIR}/external/glad_${API}_${NAME_SUFFIX}"
|
|
API ${APISTR}=${VERSION}
|
|
)
|
|
if(CMAKE_SYSTEM_NAME IN_LIST "${API}_SYSTEMS")
|
|
add_test(
|
|
NAME "${TARGET}"
|
|
COMMAND "${CMAKE_MAKE_PROGRAM}" "${TARGET}" VERBOSE=ON
|
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
|
)
|
|
endif()
|
|
endforeach()
|
|
endforeach()
|
|
endforeach()
|
|
|
|
foreach(glx_VERSION ${glx_VERSIONS})
|
|
string(REPLACE "." "" NAME_SUFFIX "${glx_VERSION}")
|
|
target_link_libraries(glad_glx_${NAME_SUFFIX}
|
|
PUBLIC
|
|
glad_gl_10_core
|
|
)
|
|
endforeach()
|
|
|
|
foreach(wgl_VERSION ${wgl_VERSIONS})
|
|
string(REPLACE "." "" NAME_SUFFIX "${wgl_VERSION}")
|
|
target_link_libraries(glad_wgl_${NAME_SUFFIX}
|
|
PUBLIC
|
|
glad_gl_10_core
|
|
)
|
|
endforeach()
|
|
|