From 4ea58f4eac6ba218e453f3738c1f4e201eba426f Mon Sep 17 00:00:00 2001 From: Nigel Barink Date: Wed, 9 Jul 2025 20:34:37 +0200 Subject: [PATCH] Moved to CMake as a build system --- CMakeLists.txt | 34 +++------------- HelloTriangle/CMakeLists.txt | 25 ++++++++++++ HelloTriangle/compile_commands.json | 13 ------- HelloTriangle/premake5.lua | 6 --- HelloVulkan/CMakeLists.txt | 23 +++++++++++ HelloVulkan/premake5.lua | 6 --- premake5.lua | 60 ----------------------------- 7 files changed, 54 insertions(+), 113 deletions(-) create mode 100644 HelloTriangle/CMakeLists.txt delete mode 100644 HelloTriangle/compile_commands.json delete mode 100644 HelloTriangle/premake5.lua create mode 100644 HelloVulkan/CMakeLists.txt delete mode 100644 HelloVulkan/premake5.lua delete mode 100644 premake5.lua diff --git a/CMakeLists.txt b/CMakeLists.txt index 617dbc8..f5e575b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,33 +1,11 @@ cmake_minimum_required(VERSION 4.0) -set(CXX_STANDARD 17) -set(CXX_STANDARD_REQUIRED ON) set(CMAKE_GENERATOR_PLATFORM x64) - +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_COMPILER clang) project (LearnVulkan VERSION 1.0.0) -# project 1 -add_executable(HelloTriangle) - -# linker settings -target_link_options(HelloTriangle PUBLIC nodefaultlibs) -target_link_directories( HelloTriangle PUBLIC ) -target_link_libraries(HelloTriangle msvcrt user32 kernel32 libcmt gdi32 glu32 shell32 opengl32 - glfw3 vulkan-1) - -target_include_directories(HelloTriangle PUBLIC "c:/VulkanSDK/1.4.304.1/Include" "libs") - -target_compile_definitions(HelloTriangle PUBLIC $:NDEBUG) -target_compile_definitions(HelloTriangle PUBLIC $:DEBUG) - -# project 2 -add_executable(HelloVulkan) - -# linker settings -target_link_options(HelloVulkan PUBLIC nodefaultlibs) -target_include_directories(HelloVulkan PUBLIC "c:/VulkanSDK/1.4.304.1/Include" "libs") -target_link_libraries(HelloVulkan msvcrt user32 kernel32 libcmt gdi32 glu32 shell32 opengl32 - glfw3 vulkan-1) - -target_compile_definitions(HelloVulkan PUBLIC $:NDEBUG) -target_compile_definitions(HelloVulkan PUBLIC $:DEBUG) +add_subdirectory(HelloTriangle) +add_subdirectory(HelloVulkan) diff --git a/HelloTriangle/CMakeLists.txt b/HelloTriangle/CMakeLists.txt new file mode 100644 index 0000000..a4c41cb --- /dev/null +++ b/HelloTriangle/CMakeLists.txt @@ -0,0 +1,25 @@ +# project 1 +add_executable(HelloTriangle main.cpp ) + +# linker settings +target_link_directories( HelloTriangle PUBLIC + "../libs/GLFW" + "../libs/glm" + "../libs/imgui" + "c:/VulkanSDK/1.4.304.1/Lib" +) + +target_include_directories(HelloTriangle PUBLIC + "c:/VulkanSDK/1.4.304.1/Include" + "../libs" +) + +target_link_libraries(HelloTriangle + glfw3 + vulkan-1 +) + + +target_compile_definitions(HelloTriangle PUBLIC $:NDEBUG) +target_compile_definitions(HelloTriangle PUBLIC $:DEBUG) + diff --git a/HelloTriangle/compile_commands.json b/HelloTriangle/compile_commands.json deleted file mode 100644 index f86d3ec..0000000 --- a/HelloTriangle/compile_commands.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "directory": "J:/git/Graphics API/LearnVulkan/HelloVulkan", - "file": "J:/git/Graphics API/LearnVulkan/HelloVulkan/main.cpp", - "command": "cc -MD -MP -DDEBUG -IC:/VulkanSDK/1.4.304.1/Include -I\"J:/git/Graphics API/LearnVulkan/libs\" -m64 -g -o J:/git/Graphics API/LearnVulkan/HelloVulkan/obj/Debug/main.o -MF J:/git/Graphics API/LearnVulkan/HelloVulkan/obj/Debug/main.d -c J:/git/Graphics API/LearnVulkan/HelloVulkan/main.cpp" - } -, - { - "directory": "J:/git/Graphics API/LearnVulkan/HelloTriangle", - "file": "J:/git/Graphics API/LearnVulkan/HelloTriangle/main.cpp", - "command": "cc -MD -MP -DDEBUG -IC:/VulkanSDK/1.4.304.1/Include -I\"J:/git/Graphics API/LearnVulkan/libs\" -m64 -g -o J:/git/Graphics API/LearnVulkan/HelloTriangle/obj/Debug/main.o -MF J:/git/Graphics API/LearnVulkan/HelloTriangle/obj/Debug/main.d -c J:/git/Graphics API/LearnVulkan/HelloTriangle/main.cpp" - } -] \ No newline at end of file diff --git a/HelloTriangle/premake5.lua b/HelloTriangle/premake5.lua deleted file mode 100644 index 277d548..0000000 --- a/HelloTriangle/premake5.lua +++ /dev/null @@ -1,6 +0,0 @@ -project "HelloTriangle" -files { - "**.cpp", - "**.h" -} - diff --git a/HelloVulkan/CMakeLists.txt b/HelloVulkan/CMakeLists.txt new file mode 100644 index 0000000..d7ce4d6 --- /dev/null +++ b/HelloVulkan/CMakeLists.txt @@ -0,0 +1,23 @@ +# project 2 +add_executable(HelloVulkan main.cpp) + +# linker settings +target_link_directories( HelloVulkan PUBLIC + "../libs/GLFW" + "../libs/glm" + "../libs/imgui" + "c:/VulkanSDK/1.4.304.1/Lib" +) + +target_include_directories(HelloVulkan PUBLIC + "c:/VulkanSDK/1.4.304.1/Include" + "../libs" +) + +target_link_libraries(HelloVulkan + glfw3 + vulkan-1 +) + +target_compile_definitions(HelloVulkan PUBLIC $:NDEBUG) +target_compile_definitions(HelloVulkan PUBLIC $:DEBUG) diff --git a/HelloVulkan/premake5.lua b/HelloVulkan/premake5.lua deleted file mode 100644 index 764d0d0..0000000 --- a/HelloVulkan/premake5.lua +++ /dev/null @@ -1,6 +0,0 @@ -project "HelloVulkan" -files { - "**.cpp", - "**.h" -} - diff --git a/premake5.lua b/premake5.lua deleted file mode 100644 index bf264b0..0000000 --- a/premake5.lua +++ /dev/null @@ -1,60 +0,0 @@ -require "../export-compile-commands" - -workspace "LearnVulkan" -kind "ConsoleApp" -language "C++" -cppdialect "C++17" -architecture "x64" -targetdir "%{prj.location}/bin/%{cfg.buildcfg}" - -configurations { "Debug", "Release" } - - -filter "configurations:Debug" -defines { "DEBUG" } -symbols "On" - -filter "configurations:Release" -defines { "NDEBUG" } -optimize "On" - -filter "system:windows" -linkoptions { - "-nodefaultlibs" -} -libdirs { - "C:/VulkanSDK/1.4.304.1/Lib", - "libs/GLFW", -} -includedirs { - "C:/VulkanSDK/1.4.304.1/Include", - "libs" -} - -links { - "msvcrt", - "user32", - "kernel32", - "libcmt", - "gdi32", - "glu32", - "shell32", - "opengl32", - "glfw3", - "vulkan-1" -} - -filter "system:linux" -links { - "glfw3", - "vulkan", - "dl", - "pthread", - "X11", - "Xxf86vm", - "Xrandr", - "Xi" -} - -include("HelloVulkan/premake5.lua") -include("HelloTriangle/premake5.lua")