Skip to content

Commit f2c04e5

Browse files
committed
Revert the Linux CI changes.
1 parent c764f8c commit f2c04e5

File tree

1 file changed

+3
-194
lines changed

1 file changed

+3
-194
lines changed

attachments/CMakeLists.txt

Lines changed: 3 additions & 194 deletions
Original file line numberDiff line numberDiff line change
@@ -3,196 +3,13 @@ cmake_minimum_required (VERSION 3.29)
33
# Enable C++ module dependency scanning
44
set(CMAKE_CXX_SCAN_FOR_MODULES ON)
55

6-
# Check if VULKAN_SDK environment variable is set
7-
if(NOT DEFINED ENV{VULKAN_SDK})
8-
message(WARNING "VULKAN_SDK environment variable is not set. This may cause issues with finding Vulkan SDK.")
9-
endif()
10-
11-
126
project (VulkanTutorial)
137

148
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake")
159

1610
find_package (glfw3 REQUIRED)
1711
find_package (glm REQUIRED)
18-
19-
# Try to find Vulkan
2012
find_package (Vulkan REQUIRED)
21-
22-
# Check if Vulkan was found correctly
23-
if(NOT Vulkan_FOUND OR NOT EXISTS "${Vulkan_INCLUDE_DIR}")
24-
message(WARNING "Vulkan SDK not found in expected location: ${Vulkan_INCLUDE_DIR}")
25-
26-
# Try to find Vulkan in alternative locations
27-
if(DEFINED ENV{VULKAN_SDK})
28-
message(STATUS "Trying to find Vulkan SDK in VULKAN_SDK environment variable: $ENV{VULKAN_SDK}")
29-
set(Vulkan_INCLUDE_DIR "$ENV{VULKAN_SDK}/include")
30-
if(EXISTS "${Vulkan_INCLUDE_DIR}")
31-
message(STATUS "Found Vulkan include directory at: ${Vulkan_INCLUDE_DIR}")
32-
33-
# Update Vulkan library path if needed
34-
if(NOT EXISTS "${Vulkan_LIBRARY}")
35-
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
36-
set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/lib/vulkan-1.lib")
37-
else()
38-
set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/lib/libvulkan.so")
39-
endif()
40-
message(STATUS "Setting Vulkan library to: ${Vulkan_LIBRARY}")
41-
endif()
42-
43-
# If the Vulkan::Vulkan target already exists, update its properties
44-
if(TARGET Vulkan::Vulkan)
45-
message(STATUS "Updating Vulkan::Vulkan target properties")
46-
set_target_properties(Vulkan::Vulkan PROPERTIES
47-
INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIR}"
48-
IMPORTED_LOCATION "${Vulkan_LIBRARY}"
49-
)
50-
else()
51-
# Create the Vulkan::Vulkan target if it doesn't exist
52-
message(STATUS "Creating Vulkan::Vulkan target")
53-
add_library(Vulkan::Vulkan UNKNOWN IMPORTED)
54-
set_target_properties(Vulkan::Vulkan PROPERTIES
55-
INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIR}"
56-
IMPORTED_LOCATION "${Vulkan_LIBRARY}"
57-
)
58-
endif()
59-
else()
60-
message(FATAL_ERROR "Vulkan include directory not found at: ${Vulkan_INCLUDE_DIR}")
61-
endif()
62-
else()
63-
message(FATAL_ERROR "Vulkan SDK not found. Please install Vulkan SDK or set VULKAN_SDK environment variable.")
64-
endif()
65-
endif()
66-
67-
# Include the script to fix vulkan.cppm files
68-
include(${CMAKE_CURRENT_LIST_DIR}/CMake/fix_vulkan_cppm.cmake)
69-
70-
find_package (VulkanHpp REQUIRED)
71-
72-
# Check if VulkanHpp_CPPM_DIR is set and exists
73-
if(NOT DEFINED VulkanHpp_CPPM_DIR OR NOT EXISTS "${VulkanHpp_CPPM_DIR}")
74-
message(WARNING "VulkanHpp CPPM directory not found: ${VulkanHpp_CPPM_DIR}")
75-
76-
# First check if vulkan.cppm exists in /usr/include/vulkan
77-
if(EXISTS "/usr/include/vulkan/vulkan.cppm")
78-
message(STATUS "Found vulkan.cppm in /usr/include/vulkan")
79-
80-
# Create a copy in the build directory that we can modify
81-
set(VulkanHpp_CPPM_DIR "${CMAKE_BINARY_DIR}/include")
82-
file(MAKE_DIRECTORY "${VulkanHpp_CPPM_DIR}/vulkan")
83-
84-
# Read the content of the system vulkan.cppm file
85-
file(READ "/usr/include/vulkan/vulkan.cppm" VULKAN_CPPM_CONTENT)
86-
87-
# Check if it's using the old format (without detail namespace)
88-
if(VULKAN_CPPM_CONTENT MATCHES "using VULKAN_HPP_NAMESPACE::DispatchLoaderBase" AND
89-
NOT VULKAN_CPPM_CONTENT MATCHES "namespace detail")
90-
message(STATUS "System vulkan.cppm file needs to be updated with detail namespace")
91-
92-
# Create a modified version that directly imports the detail symbols
93-
file(WRITE "${VulkanHpp_CPPM_DIR}/vulkan/vulkan.cppm"
94-
"// Modified vulkan.cppm file
95-
module;
96-
#include <vulkan/vulkan.hpp>
97-
export module vulkan;
98-
export namespace vk {
99-
// Import symbols from the main namespace
100-
using namespace VULKAN_HPP_NAMESPACE;
101-
102-
// Import symbols from the detail namespace
103-
using VULKAN_HPP_NAMESPACE::detail::DispatchLoaderBase;
104-
using VULKAN_HPP_NAMESPACE::detail::DispatchLoaderDynamic;
105-
using VULKAN_HPP_NAMESPACE::detail::DispatchLoaderStatic;
106-
using VULKAN_HPP_NAMESPACE::detail::ObjectDestroy;
107-
using VULKAN_HPP_NAMESPACE::detail::ObjectDestroyShared;
108-
using VULKAN_HPP_NAMESPACE::detail::ObjectFree;
109-
using VULKAN_HPP_NAMESPACE::detail::ObjectFreeShared;
110-
using VULKAN_HPP_NAMESPACE::detail::ObjectRelease;
111-
using VULKAN_HPP_NAMESPACE::detail::ObjectReleaseShared;
112-
using VULKAN_HPP_NAMESPACE::detail::PoolFree;
113-
using VULKAN_HPP_NAMESPACE::detail::PoolFreeShared;
114-
using VULKAN_HPP_NAMESPACE::detail::createResultValueType;
115-
using VULKAN_HPP_NAMESPACE::detail::resultCheck;
116-
using VULKAN_HPP_NAMESPACE::detail::DynamicLoader;
117-
118-
// Export detail namespace for other symbols
119-
namespace detail {
120-
using namespace VULKAN_HPP_NAMESPACE::detail;
121-
}
122-
123-
// Export raii namespace
124-
namespace raii {
125-
using namespace VULKAN_HPP_RAII_NAMESPACE;
126-
127-
// Import symbols from the detail namespace
128-
using VULKAN_HPP_NAMESPACE::detail::ContextDispatcher;
129-
using VULKAN_HPP_NAMESPACE::detail::DeviceDispatcher;
130-
}
131-
}
132-
")
133-
else()
134-
# Just copy the file as is
135-
file(COPY "/usr/include/vulkan/vulkan.cppm" DESTINATION "${VulkanHpp_CPPM_DIR}/vulkan")
136-
endif()
137-
# Try to find VulkanHpp in VULKAN_SDK
138-
elseif(DEFINED ENV{VULKAN_SDK})
139-
message(STATUS "Trying to find VulkanHpp in VULKAN_SDK environment variable: $ENV{VULKAN_SDK}")
140-
set(VulkanHpp_CPPM_DIR "$ENV{VULKAN_SDK}/include")
141-
if(EXISTS "${VulkanHpp_CPPM_DIR}")
142-
message(STATUS "Found VulkanHpp CPPM directory at: ${VulkanHpp_CPPM_DIR}")
143-
144-
# Check if vulkan.cppm exists
145-
if(NOT EXISTS "${VulkanHpp_CPPM_DIR}/vulkan/vulkan.cppm")
146-
message(STATUS "vulkan.cppm not found, creating it")
147-
file(MAKE_DIRECTORY "${VulkanHpp_CPPM_DIR}/vulkan")
148-
file(WRITE "${VulkanHpp_CPPM_DIR}/vulkan/vulkan.cppm"
149-
"// Auto-generated vulkan.cppm file
150-
module;
151-
#include <vulkan/vulkan.hpp>
152-
export module vulkan;
153-
export namespace vk {
154-
using namespace VULKAN_HPP_NAMESPACE;
155-
156-
// Export detail namespace symbols that might be referenced directly
157-
namespace detail {
158-
using namespace VULKAN_HPP_NAMESPACE::detail;
159-
}
160-
161-
// Import symbols from the detail namespace directly
162-
using VULKAN_HPP_NAMESPACE::detail::DispatchLoaderBase;
163-
using VULKAN_HPP_NAMESPACE::detail::DispatchLoaderDynamic;
164-
using VULKAN_HPP_NAMESPACE::detail::DispatchLoaderStatic;
165-
using VULKAN_HPP_NAMESPACE::detail::ObjectDestroy;
166-
using VULKAN_HPP_NAMESPACE::detail::ObjectDestroyShared;
167-
using VULKAN_HPP_NAMESPACE::detail::ObjectFree;
168-
using VULKAN_HPP_NAMESPACE::detail::ObjectFreeShared;
169-
using VULKAN_HPP_NAMESPACE::detail::ObjectRelease;
170-
using VULKAN_HPP_NAMESPACE::detail::ObjectReleaseShared;
171-
using VULKAN_HPP_NAMESPACE::detail::PoolFree;
172-
using VULKAN_HPP_NAMESPACE::detail::PoolFreeShared;
173-
using VULKAN_HPP_NAMESPACE::detail::createResultValueType;
174-
using VULKAN_HPP_NAMESPACE::detail::resultCheck;
175-
using VULKAN_HPP_NAMESPACE::detail::DynamicLoader;
176-
177-
// Export raii namespace
178-
namespace raii {
179-
using namespace VULKAN_HPP_RAII_NAMESPACE;
180-
181-
// Import symbols from the detail namespace
182-
using VULKAN_HPP_NAMESPACE::detail::ContextDispatcher;
183-
using VULKAN_HPP_NAMESPACE::detail::DeviceDispatcher;
184-
}
185-
}
186-
")
187-
endif()
188-
else()
189-
message(FATAL_ERROR "VulkanHpp CPPM directory not found at: ${VulkanHpp_CPPM_DIR}")
190-
endif()
191-
else()
192-
message(FATAL_ERROR "VulkanHpp CPPM directory not found and VULKAN_SDK environment variable is not set.")
193-
endif()
194-
endif()
195-
19613
find_package (tinyobjloader REQUIRED)
19714
find_package (tinygltf REQUIRED)
19815
find_package (KTX REQUIRED)
@@ -208,35 +25,27 @@ target_include_directories(VulkanCppModule
20825
PRIVATE
20926
"${Vulkan_INCLUDE_DIR}"
21027
)
211-
212-
# Check if Vulkan include directory exists
213-
if(NOT EXISTS "${Vulkan_INCLUDE_DIR}")
214-
message(FATAL_ERROR "Vulkan include directory not found: ${Vulkan_INCLUDE_DIR}. Please install Vulkan SDK or set VULKAN_SDK environment variable.")
215-
endif()
21628
target_link_libraries(VulkanCppModule
21729
PUBLIC
21830
Vulkan::Vulkan
21931
)
22032

22133
set_target_properties(VulkanCppModule PROPERTIES CXX_STANDARD 20)
22234

223-
# VulkanHpp_CPPM_DIR is already checked above
224-
22535
target_sources(VulkanCppModule
22636
PUBLIC
22737
FILE_SET cxx_modules TYPE CXX_MODULES
22838
BASE_DIRS
229-
"${VulkanHpp_CPPM_DIR}"
39+
"${Vulkan_INCLUDE_DIR}"
23040
FILES
231-
"${VulkanHpp_CPPM_DIR}/vulkan/vulkan.cppm"
41+
"${Vulkan_INCLUDE_DIR}/vulkan/vulkan.cppm"
23242
)
23343

23444

23545
# Add the vulkan.cppm file directly as a source file
236-
# (Checks for existence are already done above)
23746
target_sources(VulkanCppModule
23847
PRIVATE
239-
"${VulkanHpp_CPPM_DIR}/vulkan/vulkan.cppm"
48+
"${Vulkan_INCLUDE_DIR}/vulkan/vulkan.cppm"
24049
)
24150

24251
find_package(stb REQUIRED)

0 commit comments

Comments
 (0)