45 lines
1.9 KiB
CMake
45 lines
1.9 KiB
CMake
# NF library CMakeLists.txt
|
|
add_library(NothinFancy STATIC "src/Engine.cpp" "src/include/nf.h" "src/pch.h" "src/util.h" "src/util/log.h" "src/util/log.cpp" "src/include/nf/config.h" "src/util/util.cpp" "src/util/file.h" "src/util/file.cpp" "src/client/Client.h" "src/client/Client.cpp" "src/client/Window.h" "src/client/Window.cpp" "src/client/render/RenderEngine.h" "src/client/render/RenderEngine.cpp" "src/client/render/ShaderModule.h" "src/client/render/ShaderModule.cpp")
|
|
|
|
# Use C++20
|
|
set_property(TARGET NothinFancy PROPERTY CXX_STANDARD 20)
|
|
|
|
# Additional include directories
|
|
target_include_directories(NothinFancy PUBLIC "src" "src/include")
|
|
|
|
# Use precompiled header
|
|
target_precompile_headers(NothinFancy PUBLIC "src/pch.h")
|
|
|
|
# Link libraries
|
|
target_link_libraries(NothinFancy "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib")
|
|
target_include_directories(NothinFancy PUBLIC "$ENV{VULKAN_SDK}/Include")
|
|
|
|
# Generate version.h
|
|
find_package(Git)
|
|
execute_process(COMMAND ${GIT_EXECUTABLE} describe OUTPUT_VARIABLE NFVERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
configure_file(src/version.h.in version.h)
|
|
target_include_directories(NothinFancy PUBLIC "${PROJECT_BINARY_DIR}/NothinFancy")
|
|
|
|
# Compile shaders
|
|
set(GLSLANG "$ENV{VULKAN_SDK}/Bin/glslang.exe")
|
|
set(SHADER_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/NothinFancy/shaders")
|
|
file(GLOB_RECURSE SHADER_SOURCES "res/shaders/*.glsl")
|
|
foreach(SHADER_SOURCE ${SHADER_SOURCES})
|
|
get_filename_component(FILENAME ${SHADER_SOURCE} NAME)
|
|
set(SHADER_BINARY "${SHADER_OUTPUT_DIRECTORY}/${FILENAME}.spv")
|
|
add_custom_command(
|
|
OUTPUT ${SHADER_BINARY}
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${SHADER_OUTPUT_DIRECTORY}"
|
|
COMMAND ${GLSLANG} -V ${SHADER_SOURCE} -o ${SHADER_BINARY}
|
|
DEPENDS ${SHADER_SOURCE}
|
|
)
|
|
list(APPEND SHADER_BINARIES ${SHADER_BINARY})
|
|
endforeach(SHADER_SOURCE)
|
|
|
|
add_custom_target(
|
|
Shaders
|
|
DEPENDS ${SHADER_BINARIES}
|
|
)
|
|
|
|
add_dependencies(NothinFancy Shaders)
|