init
This commit is contained in:
53
CMakeLists.txt
Normal file
53
CMakeLists.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
add_executable(TheChef
|
||||
main.cpp
|
||||
"ShaderCompiler.h" "ShaderCompiler.cpp"
|
||||
)
|
||||
|
||||
target_compile_features(TheChef PRIVATE cxx_std_17)
|
||||
|
||||
# Good practice for tools
|
||||
target_compile_definitions(TheChef PRIVATE
|
||||
_CRT_SECURE_NO_WARNINGS
|
||||
)
|
||||
if (NOT TARGET nlohmann_json::nlohmann_json)
|
||||
add_subdirectory(third_party/json)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET spdlog::spdlog)
|
||||
add_subdirectory(third_party/spdlog)
|
||||
endif()
|
||||
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
set(GLSLANG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/glslang")
|
||||
set(SCRIPT "${GLSLANG_DIR}/update_glslang_sources.py")
|
||||
|
||||
execute_process(
|
||||
COMMAND "${Python3_EXECUTABLE}" "${SCRIPT}"
|
||||
WORKING_DIRECTORY "${GLSLANG_DIR}"
|
||||
RESULT_VARIABLE rc
|
||||
OUTPUT_VARIABLE out
|
||||
ERROR_VARIABLE err
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
if(NOT rc EQUAL 0)
|
||||
message(FATAL_ERROR
|
||||
"update_glslang_sources.py failed (exit code ${rc})\n"
|
||||
"--- stdout ---\n${out}\n"
|
||||
"--- stderr ---\n${err}\n"
|
||||
)
|
||||
endif()
|
||||
|
||||
add_subdirectory(third_party/glslang)
|
||||
|
||||
|
||||
target_link_libraries(TheChef PRIVATE nlohmann_json::nlohmann_json spdlog::spdlog glslang glslang-default-resource-limits)
|
||||
|
||||
# Optional: warnings
|
||||
if (MSVC)
|
||||
target_compile_options(TheChef PRIVATE /W4)
|
||||
else()
|
||||
target_compile_options(TheChef PRIVATE -Wall -Wextra -Wpedantic)
|
||||
endif()
|
||||
Reference in New Issue
Block a user