build: add windows platform support

This commit is contained in:
2026-03-21 11:46:31 +08:00
parent 9f9aaa4c08
commit 686aac8067

View File

@@ -16,10 +16,28 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
if (UNIX AND NOT APPLE)
pkg_check_modules(EGL REQUIRED egl)
pkg_check_modules(Wayland REQUIRED wayland-client wayland-egl)
find_package(glfw3 REQUIRED)
endif()
pkg_check_modules(EGL REQUIRED egl) if (WIN32)
pkg_check_modules(Wayland REQUIRED wayland-client wayland-egl) FetchContent_Declare(
find_package(glfw3 REQUIRED) glfw
GIT_REPOSITORY https://github.com/glfw/glfw.git
GIT_TAG 3.4
)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
set(GLFW_VULKAN_STATIC ON CACHE BOOL "" FORCE)
set(GLFW_STATIC ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(glfw)
endif()
add_library(glad STATIC third_party/glad/src/glad.c) add_library(glad STATIC third_party/glad/src/glad.c)
@@ -79,8 +97,6 @@ target_include_directories(${PROJECT_NAME} PUBLIC ${INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME}
PRIVATE PRIVATE
${EGL_LIBRARIES}
${Wayland_LIBRARIES}
glfw glfw
glad glad
glm::glm glm::glm
@@ -88,17 +104,24 @@ target_link_libraries(${PROJECT_NAME}
soil2 soil2
) )
if (UNIX AND NOT APPLE)
target_include_directories(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME}
PRIVATE PRIVATE
${EGL_INCLUDE_DIRS} ${EGL_LIBRARIES}
${Wayland_INCLUDE_DIRS} ${Wayland_LIBRARIES}
) )
target_compile_options(${PROJECT_NAME} PRIVATE ${EGL_CFLAGS_OTHER} ${Wayland_CFLAGS_OTHER}) target_include_directories(${PROJECT_NAME}
PRIVATE
${EGL_INCLUDE_DIRS}
${Wayland_INCLUDE_DIRS}
)
target_compile_options(${PROJECT_NAME} PRIVATE ${EGL_CFLAGS_OTHER} ${Wayland_CFLAGS_OTHER})
endif()
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory COMMAND ${CMAKE_COMMAND} -E copy_directory