Skip to content
This repository was archived by the owner on Oct 7, 2025. It is now read-only.

Commit 410632b

Browse files
committed
use spirv from glslang
1 parent 9ff8a1a commit 410632b

File tree

5 files changed

+60
-56
lines changed

5 files changed

+60
-56
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
run: |
2020
mkdir build
2121
cd build
22-
cmake ..
22+
cmake -DMGL_BUILD_TEST=TRUE ..
2323
2424
- name: Build
2525
run: |

CMakeLists.txt

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,47 @@
11
cmake_minimum_required(VERSION 3.15)
22
project(MGL LANGUAGES C CXX OBJC)
33

4-
execute_process(COMMAND "bash" "clone_external.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/external" COMMAND_ECHO STDOUT)
54
execute_process(COMMAND "bash" "build_external.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/external" COMMAND_ECHO STDOUT)
65

76
set(CMAKE_C_STANDARD 17)
87
set(CMAKE_CXX_STANDARD 20)
98

10-
# Include paths
119
include_directories(
1210
MGL/SPIRV/SPIRV-Cross
1311
MGL/include
1412
MGL/include/GL
1513
external/SPIRV-Cross
16-
external/SPIRV-Tools/include
14+
external/glslang/External/spirv-tools/include
15+
external/glslang/SPIRV
1716
external/glslang/glslang/Include
17+
external/glslang/glslang/Public
1818
)
1919

20-
# Gather all source files
2120
file(GLOB_RECURSE MGL_SOURCES
2221
MGL/src/*.c
2322
MGL/src/*.m
2423
MGL/spirv_cross_c.cpp
2524
)
2625

27-
# Static library target
2826
add_library(mgl STATIC ${MGL_SOURCES})
2927

30-
# Link libraries
3128
target_link_libraries(mgl PUBLIC
32-
"${CMAKE_CURRENT_LIST_DIR}/external/glslang/build/glslang/libGenericCodeGen.a"
33-
"${CMAKE_CURRENT_LIST_DIR}/external/glslang/build/glslang/libMachineIndependent.a"
34-
"${CMAKE_CURRENT_LIST_DIR}/external/glslang/build/glslang/libglslang-default-resource-limits.a"
35-
"${CMAKE_CURRENT_LIST_DIR}/external/glslang/build/glslang/libglslang.a"
36-
"${CMAKE_CURRENT_LIST_DIR}/external/glslang/build/glslang/OSDependent/Unix/libOSDependent.a"
37-
"${CMAKE_CURRENT_LIST_DIR}/external/glslang/build/SPIRV/libSPIRV.a"
38-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-c.a"
39-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-core.a"
40-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-cpp.a"
41-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-glsl.a"
42-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-hlsl.a"
43-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-msl.a"
44-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-reflect.a"
45-
"${CMAKE_CURRENT_LIST_DIR}/external/SPIRV-Cross/build/libspirv-cross-util.a"
29+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-c.a"
30+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-core.a"
31+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-cpp.a"
32+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-glsl.a"
33+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-hlsl.a"
34+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-msl.a"
35+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-reflect.a"
36+
"${CMAKE_CURRENT_SOURCE_DIR}/external/SPIRV-Cross/build/libspirv-cross-util.a"
37+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/SPIRV/libSPIRV.a"
38+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/OSDependent/Unix/libOSDependent.a"
39+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libGenericCodeGen.a"
40+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libMachineIndependent.a"
41+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libglslang-default-resource-limits.a"
42+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libglslang.a"
4643
)
4744

48-
# macOS Frameworks
4945
target_link_libraries(mgl PUBLIC
5046
"-framework AppKit"
5147
"-framework Cocoa"
@@ -56,3 +52,20 @@ target_link_libraries(mgl PUBLIC
5652
"-framework OpenGL"
5753
"-framework QuartzCore"
5854
)
55+
56+
if(MGL_BUILD_TEST)
57+
add_library(glfw-imp STATIC IMPORTED)
58+
set_target_properties(glfw-imp PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/external/glfw/build/src/libglfw3.a")
59+
60+
add_library(glfw INTERFACE)
61+
target_link_libraries(glfw INTERFACE glfw-imp mgl)
62+
target_include_directories(glfw INTERFACE "external/glfw/include")
63+
64+
add_dependencies(glfw mgl)
65+
66+
add_library(glm INTERFACE)
67+
target_include_directories(glm INTERFACE "mgl/MGL/include")
68+
69+
add_executable(mgl_test mgl_test.cpp)
70+
target_link_libraries(mgl_test glfw glm)
71+
endif()

external/build_external.sh

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
1-
set SDKROOT=`xcrun --show-sdk-path`
1+
#!/bin/bash
22

3-
cp ../MGL/include/MGLContext.h glfw/src
4-
cp ../MGL/include/MGLRenderer.h glfw/src
5-
cd SPIRV-Tools
6-
mkdir build
7-
cd build
8-
cmake ..
9-
make -j 4
10-
cd ../..
3+
# Optional: for macOS SDK if you're using system frameworks
4+
# export SDKROOT=$(xcrun --show-sdk-path)
5+
6+
# Clone only the required repositories
7+
git clone https://github.com/KhronosGroup/glslang.git --depth 1
8+
git clone https://github.com/r58Playz/SPIRV-Cross.git -b uniform-constants
9+
10+
# === Build SPIRV-Cross ===
1111
cd SPIRV-Cross
12-
mkdir build
13-
cd build
12+
mkdir -p build && cd build
1413
cmake ..
15-
make -j 4
16-
cd ../..
17-
cd SPIRV-Headers
18-
mkdir build
19-
cd build
20-
cmake ..
21-
make -j 4
14+
make -j4
2215
cd ../..
16+
17+
# === Build glslang ===
2318
cd glslang
2419
./update_glslang_sources.py
25-
mkdir build
26-
cd build
27-
cmake ..
28-
make -j 4
20+
mkdir -p build && cd build
21+
cmake -DENABLE_OPT=ON ..
22+
make -j4
2923
cd ../..
24+
25+
# === Build glfw ===
26+
cp ../MGL/include/MGLContext.h glfw/src
27+
cp ../MGL/include/MGLRenderer.h glfw/src
3028
cd glfw
31-
mkdir build
32-
cd build
29+
mkdir -p build && cd build
3330
cmake ..
34-
make -j 4 glfw
31+
make -j4
3532
cd ../..

external/clone_external.sh

Lines changed: 0 additions & 9 deletions
This file was deleted.

mgl_test.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
int main(void)
3+
{}

0 commit comments

Comments
 (0)