include(FetchContent)
if(WIN32) set(Glfw_URL https://github.com/glfw/glfw/releases/download/3.4/glfw-3.4.bin.WIN64.zip) else() message(FATAL_ERROR "Unsupported platform") endif()
get_filename_component(Glfw_ZIP_FILENAME "${Glfw_URL}" NAME)
string(REGEX REPLACE "\\.[^.]*$" "" Glfw_FILENAME ${Glfw_ZIP_FILENAME})
FetchContent_Declare( Glfw URL ${Glfw_URL} URL_HASH SHA256=54efa829400f2a0537f742b2b3bdd74e437bb4f2f048e4b7d3c5557d11a611e6 DOWNLOAD_DIR ${EXTERNAL_PROJECTS_DIR}/glfw DOWNLOAD_EXTRACT_TIMESTAMP true )
FetchContent_MakeAvailable(Glfw)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${EXTERNAL_PROJECTS_DIR}/glfw/${Glfw_ZIP_FILENAME} WORKING_DIRECTORY ${EXTERNAL_PROJECTS_DIR}/glfw)
set(GLFW_INSTALL_DIR ${EXTERNAL_PROJECTS_DIR}/glfw/${Glfw_FILENAME})
include_directories(${GLFW_INSTALL_DIR}/include)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set(GLFW_LIB_DIR ${GLFW_INSTALL_DIR}/lib-mingw-w64) message(STATUS "Compiling with MinGW, setting GLFW_LIB_DIR to ${GLFW_LIB_DIR}") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set(GLFW_LIB_DIR ${GLFW_INSTALL_DIR}/lib-vc2022) message(STATUS "Compiling with MSVC, setting GLFW_LIB_DIR to ${GLFW_LIB_DIR}") else() message(FATAL_ERROR "Unsupported compiler") endif()
target_link_directories(${project_name} PRIVATE ${GLFW_LIB_DIR})
set(GLFW_DLLS glfw3.dll) set(GLFW_LIBS glfw3.lib)
|