diff --git a/CMakeLists.txt b/CMakeLists.txt index 459fb39..5ebbd31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,12 +20,18 @@ set(3rdParty_ktx_path "${3rdPARTY_PATH}/ktx/include") set(3rdParty_ktx_otherInclude_path "${3rdPARTY_PATH}/ktx/other_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" ) -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) set(RESOURCE_INSTALL_DIR "" CACHE PATH "Path to install resources to (leave empty for running uninstalled)") @@ -49,6 +55,7 @@ IF(WIN32) ENDIF() ENDIF() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WIN32_KHR") + ELSEIF(LINUX) IF (NOT Vulkan_FOUND) 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() - find_package(Threads REQUIRED) - IF(USE_D2D_WSI) - MESSAGE("Using direct to display extension...") - add_definitions(-D_DIRECT2DISPLAY) - ELSEIF(USE_DIRECTFB_WSI) - 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) +find_package(Threads REQUIRED) + +IF(USE_HEADLESS) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_HEADLESS_EXT") +ENDIF(USE_HEADLESS) IF (NOT Vulkan_FOUND) message(FATAL_ERROR "Could not find Vulkan library!") @@ -123,25 +98,10 @@ endif() # Compiler specific stuff IF(MSVC) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") -ELSEIF(APPLE) - #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) +endif() set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/") add_subdirectory(${lib_base_path}) add_subdirectory(src) -# add_subdirectory(examples) diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt index ccb6642..04dbb81 100644 --- a/src/base/CMakeLists.txt +++ b/src/base/CMakeLists.txt @@ -1,14 +1,5 @@ -file(GLOB BASE_SRC "*.cpp" "*.hpp" "*.h" "${3rdParty_imgui_path}/*.cpp" ) -file(GLOB BASE_HEADERS "*.hpp" "*.h") +file(GLOB BASE_SRC "*.cpp" "*.h" "${3rdParty_imgui_path}/*.cpp" ) -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_otherInclude_path})