Skip to content

Commit 1359bb1

Browse files
committed
refactor module 0.5
1 parent a41e16a commit 1359bb1

File tree

11 files changed

+1056
-1310
lines changed

11 files changed

+1056
-1310
lines changed

CMakeLists.txt

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,37 @@
11
cmake_minimum_required(VERSION 4.0.0)
22

3-
#################################################################################
4-
#### Set up the vcpkg toolchain, which must be done before the project() function.
5-
# You can also set it up by default through the CMakePresets.json file
6-
# requires the VCPKG_ROOT environment variable
7-
# The TO_CMAKE_PATH here is used to convert back slashes to forward slashes
3+
# 请自行设置模块实验性标准
4+
# set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "......")
5+
86
file(TO_CMAKE_PATH "$ENV{VCPKG_ROOT}" VCPKG_CMAKE_PATH)
97
set(CMAKE_TOOLCHAIN_FILE "${VCPKG_CMAKE_PATH}/scripts/buildsystems/vcpkg.cmake")
10-
#################################################################################
118

12-
project(HelloVulkan LANGUAGES CXX)
9+
project(HelloCppModule LANGUAGES CXX)
1310

1411
set(CMAKE_CXX_STANDARD 23)
12+
set(CMAKE_CXX_MODULE_STD 1)
1513

16-
#################################################################################
17-
#### Search for Vulkan package.
18-
# CMake provides FindVulkan support, but requires the VULKAN_SDK environment variable
19-
# Setting by default during Vulkan SDK installation, such as E: \ Vulkan \ 1.4.309.0
20-
find_package(Vulkan REQUIRED)
21-
#################################################################################
14+
include(cmake/VulkanHppModule.cmake)
2215

23-
#################################################################################
24-
#### add_executable
25-
# Import third-party libraries through vcpkg
2616
find_package(glfw3 CONFIG REQUIRED)
2717
find_package(glm CONFIG REQUIRED)
2818
find_package(Stb REQUIRED)
2919
find_package(tinyobjloader CONFIG REQUIRED)
3020

31-
# Add executable program targets
32-
add_executable(${PROJECT_NAME} src/main.cpp)
33-
34-
target_link_libraries(${PROJECT_NAME} PRIVATE Vulkan::Vulkan )
35-
target_link_libraries(${PROJECT_NAME} PRIVATE glm::glm )
36-
target_link_libraries(${PROJECT_NAME} PRIVATE glfw )
37-
target_include_directories(${PROJECT_NAME} PRIVATE ${Stb_INCLUDE_DIR})
38-
target_link_libraries(${PROJECT_NAME} PRIVATE tinyobjloader::tinyobjloader)
39-
#################################################################################
21+
file(GLOB_RECURSE CXX_CPP_FILES "src/*.cpp")
22+
file(GLOB_RECURSE CXX_MODULE_FILES "src/*.cppm" "src/*.ixx")
23+
add_executable(main ${CXX_CPP_FILES})
24+
target_sources(main PRIVATE
25+
FILE_SET cxx_modules
26+
TYPE CXX_MODULES
27+
FILES ${CXX_MODULE_FILES}
28+
)
29+
30+
target_link_libraries(main PRIVATE VulkanHppModule)
31+
target_link_libraries(main PRIVATE glm::glm)
32+
target_link_libraries(main PRIVATE glfw )
33+
target_include_directories(main PRIVATE ${Stb_INCLUDE_DIR})
34+
target_link_libraries(main PRIVATE tinyobjloader::tinyobjloader)
4035

41-
#################################################################################
42-
#### shader compilation
4336
add_subdirectory(shaders)
44-
#################################################################################
37+

docs/codes/04/00_cxxmodule/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
cmake_minimum_required(VERSION 4.0.0)
22

3+
# 请自行设置模块实验性标准
4+
# set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "......")
35

46
project(HelloCppModule LANGUAGES CXX)
57

6-
set(CMAKE_CXX_STANDARD 20)
8+
set(CMAKE_CXX_STANDARD 23)
9+
set(CMAKE_CXX_MODULE_STD 1)
710

811
include(cmake/VulkanHppModule.cmake)
912

docs/codes/04/00_cxxmodule/CMakePresets.json

Lines changed: 0 additions & 127 deletions
This file was deleted.
-803 Bytes
Binary file not shown.

docs/codes/04/00_cxxmodule/src/main.cpp

Lines changed: 0 additions & 24 deletions
This file was deleted.
2.9 KB
Binary file not shown.

0 commit comments

Comments
 (0)