调整cmakeList

main
InkSoul 2025-03-22 20:59:51 +08:00
parent 69fc13b883
commit 8d4ed62b67
2 changed files with 17 additions and 66 deletions

View File

@ -20,12 +20,18 @@ set(3rdParty_ktx_path "${3rdPARTY_PATH}/ktx/include")
set(3rdParty_ktx_otherInclude_path "${3rdPARTY_PATH}/ktx/other_include") set(3rdParty_ktx_otherInclude_path "${3rdPARTY_PATH}/ktx/other_include")
set(3rdParty_vulkan_path "${3rdPARTY_PATH}/vulkan_include") set(3rdParty_vulkan_path "${3rdPARTY_PATH}/vulkan_include")
set(KTX_DIR ${3rdPARTY_PATH}/ktx)
set(KTX_SOURCES
${KTX_DIR}/lib/texture.c
${KTX_DIR}/lib/hashlist.c
${KTX_DIR}/lib/checkheader.c
${KTX_DIR}/lib/swap.c
${KTX_DIR}/lib/memstream.c
${KTX_DIR}/lib/filestream.c)
set(lib_base_path "${CMAKE_SOURCE_DIR}/src/base" ) set(lib_base_path "${CMAKE_SOURCE_DIR}/src/base" )
OPTION(USE_D2D_WSI "Build the project using Direct to Display swapchain" OFF)
OPTION(USE_DIRECTFB_WSI "Build the project using DirectFB swapchain" OFF)
OPTION(USE_WAYLAND_WSI "Build the project using Wayland swapchain" OFF)
OPTION(USE_HEADLESS "Build the project using headless extension swapchain" OFF) OPTION(USE_HEADLESS "Build the project using headless extension swapchain" OFF)
set(RESOURCE_INSTALL_DIR "" CACHE PATH "Path to install resources to (leave empty for running uninstalled)") set(RESOURCE_INSTALL_DIR "" CACHE PATH "Path to install resources to (leave empty for running uninstalled)")
@ -49,6 +55,7 @@ IF(WIN32)
ENDIF() ENDIF()
ENDIF() ENDIF()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WIN32_KHR") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WIN32_KHR")
ELSEIF(LINUX) ELSEIF(LINUX)
IF (NOT Vulkan_FOUND) IF (NOT Vulkan_FOUND)
find_library(Vulkan_LIBRARY NAMES vulkan HINTS "$ENV{VULKAN_SDK}/lib" "${CMAKE_SOURCE_DIR}/libs/vulkan" REQUIRED) find_library(Vulkan_LIBRARY NAMES vulkan HINTS "$ENV{VULKAN_SDK}/lib" "${CMAKE_SOURCE_DIR}/libs/vulkan" REQUIRED)
@ -58,43 +65,11 @@ ELSEIF(LINUX)
ENDIF() ENDIF()
ENDIF() ENDIF()
endif() endif()
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
IF(USE_D2D_WSI)
MESSAGE("Using direct to display extension...") IF(USE_HEADLESS)
add_definitions(-D_DIRECT2DISPLAY) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_HEADLESS_EXT")
ELSEIF(USE_DIRECTFB_WSI) ENDIF(USE_HEADLESS)
find_package(DirectFB REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_DIRECTFB_EXT")
include_directories(${DIRECTFB_INCLUDE_DIR})
ELSEIF(USE_WAYLAND_WSI)
find_program(PKG_CONFIG pkg-config)
if (NOT PKG_CONFIG)
message(FATAL_ERROR "pkg-config binary not found")
endif ()
find_package(Wayland REQUIRED)
if (NOT WAYLAND_FOUND)
message(FATAL_ERROR "Wayland development package not found")
endif ()
pkg_check_modules(WAYLAND_PROTOCOLS REQUIRED wayland-protocols)
if (NOT WAYLAND_PROTOCOLS_FOUND)
message(FATAL_ERROR "Wayland protocols package not found")
endif ()
find_program(WAYLAND_SCANNER wayland-scanner)
if (NOT WAYLAND_SCANNER)
message(FATAL_ERROR "wayland-scanner binary not found")
endif ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WAYLAND_KHR")
include_directories(${WAYLAND_INCLUDE_DIR})
pkg_get_variable(protocol_dir wayland-protocols pkgdatadir)
execute_process(COMMAND ${WAYLAND_SCANNER} client-header ${protocol_dir}/stable/xdg-shell/xdg-shell.xml ${CMAKE_BINARY_DIR}/xdg-shell-client-protocol.h
COMMAND ${WAYLAND_SCANNER} private-code ${protocol_dir}/stable/xdg-shell/xdg-shell.xml ${CMAKE_BINARY_DIR}/xdg-shell-protocol.c)
include_directories(${CMAKE_BINARY_DIR})
ELSEIF(USE_HEADLESS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_HEADLESS_EXT")
#ELSE(USE_D2D_WSI)
# find_package(XCB REQUIRED)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_XCB_KHR")
ENDIF(USE_D2D_WSI)
IF (NOT Vulkan_FOUND) IF (NOT Vulkan_FOUND)
message(FATAL_ERROR "Could not find Vulkan library!") message(FATAL_ERROR "Could not find Vulkan library!")
@ -123,25 +98,10 @@ endif()
# Compiler specific stuff # Compiler specific stuff
IF(MSVC) IF(MSVC)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
ELSEIF(APPLE) endif()
#if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc -ObjC++")
#ELSE()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc -xobjective-c++")
#ENDIF()
ENDIF(MSVC)
IF(WIN32)
# Nothing here (yet)
ELSEIF(APPLE)
link_libraries(${Vulkan_LIBRARY} "-framework AppKit" "-framework QuartzCore")
ELSE(WIN32)
link_libraries(${XCB_LIBRARIES} ${Vulkan_LIBRARY} ${DIRECTFB_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
ENDIF(WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/")
add_subdirectory(${lib_base_path}) add_subdirectory(${lib_base_path})
add_subdirectory(src) add_subdirectory(src)
# add_subdirectory(examples)

View File

@ -1,14 +1,5 @@
file(GLOB BASE_SRC "*.cpp" "*.hpp" "*.h" "${3rdParty_imgui_path}/*.cpp" ) file(GLOB BASE_SRC "*.cpp" "*.h" "${3rdParty_imgui_path}/*.cpp" )
file(GLOB BASE_HEADERS "*.hpp" "*.h")
set(KTX_DIR ${3rdPARTY_PATH}/ktx)
set(KTX_SOURCES
${KTX_DIR}/lib/texture.c
${KTX_DIR}/lib/hashlist.c
${KTX_DIR}/lib/checkheader.c
${KTX_DIR}/lib/swap.c
${KTX_DIR}/lib/memstream.c
${KTX_DIR}/lib/filestream.c)
include_directories(${3rdParty_ktx_path}) include_directories(${3rdParty_ktx_path})
include_directories(${3rdParty_ktx_otherInclude_path}) include_directories(${3rdParty_ktx_otherInclude_path})