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

Commit 223649f

Browse files
committed
use spirv from glslang
1 parent 9ff8a1a commit 223649f

File tree

5 files changed

+68
-62
lines changed

5 files changed

+68
-62
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,9 @@ jobs:
1919
run: |
2020
mkdir build
2121
cd build
22-
cmake ..
22+
cmake -DMGL_BUILD_TEST=TRUE ..
2323
2424
- name: Build
2525
run: |
2626
cd build
2727
cmake --build . -- -j$(( `sysctl -n hw.ncpu` + 1 ))
28-
29-
- name: Ls
30-
run: |
31-
ls -R .

CMakeLists.txt

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,53 @@
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/External/spirv-tools/source/diff/libSPIRV-Tools-diff.a"
38+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/External/spirv-tools/source/libSPIRV-Tools.a/
39+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/External/spirv-tools/source/link/libSPIRV-Tools-link.a"
40+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/External/spirv-tools/source/lint/libSPIRV-Tools-lint.a"
41+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/External/spirv-tools/source/opt/libSPIRV-Tools-opt.a"
42+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/External/spirv-tools/source/reduce/libSPIRV-Tools-reduce.a"
43+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/SPIRV/libSPIRV.a"
44+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/OSDependent/Unix/libOSDependent.a"
45+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libGenericCodeGen.a"
46+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libMachineIndependent.a"
47+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libglslang-default-resource-limits.a"
48+
"${CMAKE_CURRENT_SOURCE_DIR}/external/glslang/build/glslang/libglslang.a"
4649
)
4750
48-
# macOS Frameworks
4951
target_link_libraries(mgl PUBLIC
5052
"-framework AppKit"
5153
"-framework Cocoa"
@@ -56,3 +58,20 @@ target_link_libraries(mgl PUBLIC
5658
"-framework OpenGL"
5759
"-framework QuartzCore"
5860
)
61+
62+
if(MGL_BUILD_TEST)
63+
add_library(glfw-imp STATIC IMPORTED)
64+
set_target_properties(glfw-imp PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/external/glfw/build/src/libglfw3.a")
65+
66+
add_library(glfw INTERFACE)
67+
target_link_libraries(glfw INTERFACE glfw-imp mgl)
68+
target_include_directories(glfw INTERFACE "external/glfw/include")
69+
70+
add_dependencies(glfw mgl)
71+
72+
add_library(glm INTERFACE)
73+
target_include_directories(glm INTERFACE "mgl/MGL/include")
74+
75+
add_executable(mgl_test mgl_test.cpp)
76+
target_link_libraries(mgl_test glfw glm)
77+
endif()

external/build_external.sh

Lines changed: 24 additions & 27 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
14-
cmake ..
15-
make -j 4
16-
cd ../..
17-
cd SPIRV-Headers
18-
mkdir build
19-
cd build
20-
cmake ..
21-
make -j 4
12+
mkdir -p build && cd build
13+
cmake -DCMAKE_BUILD_TYPE=Release ..
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 -DCMAKE_BUILD_TYPE=Release -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
33-
cmake ..
34-
make -j 4 glfw
29+
mkdir -p build && cd build
30+
cmake -DCMAKE_BUILD_TYPE=Release ..
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)