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

Commit 1eae9af

Browse files
committed
use submodules for externals
1 parent a4d8564 commit 1eae9af

File tree

8 files changed

+37
-87
lines changed

8 files changed

+37
-87
lines changed

.gitignore

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
config.mk
22
build/
33
libmgl.dylib
4-
external/glfw/src/MGLContext.h
5-
external/glfw/src/MGLRenderer.h
6-
external/OpenGL-Registry/
7-
external/SPIRV-Cross/
8-
external/SPIRV-Headers/
9-
external/SPIRV-Tools/
10-
external/ezxml/
11-
external/glslang/
124
*.DS_Store
135
/SPIRV-Headers
146
/SPIRV-Cross

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "external/glslang"]
2+
path = external/glslang
3+
url = https://github.com/KhronosGroup/glslang.git
4+
[submodule "external/SPIRV-Cross"]
5+
path = external/SPIRV-Cross
6+
url = https://github.com/r58Playz/SPIRV-Cross.git

CMakeLists.txt

Lines changed: 27 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
1-
cmake_minimum_required(VERSION 3.15)
1+
cmake_minimum_required(VERSION 3.31)
22
project(MGL LANGUAGES C CXX OBJC)
33

4-
execute_process(COMMAND "bash" "build_external.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/external" COMMAND_ECHO STDOUT)
4+
execute_process(COMMAND "python3" "update_glslang_sources.py" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/external/glslang" COMMAND_ECHO STDOUT)
55

6+
set(CMAKE_SKIP_INSTALL_RULES TRUE) # disable installs
7+
set(CMAKE_POLICY_VERSION_MINIMUM 3.31) # override cmake minimum version for dependencies
68
set(CMAKE_C_STANDARD 17)
79
set(CMAKE_CXX_STANDARD 20)
10+
set(ENABLE_OPT ON) # use spirv-tools inside glslang
811

9-
include_directories(
12+
file(GLOB_RECURSE MGL_SOURCES
13+
MGL/src/*.c
14+
MGL/src/*.m
15+
MGL/spirv_cross_c.cpp
16+
)
17+
add_library(mgl STATIC ${MGL_SOURCES})
18+
19+
add_subdirectory(external/SPIRV-Cross)
20+
add_subdirectory(external/glslang)
21+
add_subdirectory(external/glfw)
22+
23+
target_include_directories(mgl PRIVATE
1024
MGL/SPIRV/SPIRV-Cross
1125
MGL/include
1226
MGL/include/GL
@@ -16,38 +30,16 @@ include_directories(
1630
external/glslang/glslang/Include
1731
external/glslang/glslang/Public
1832
)
19-
20-
file(GLOB_RECURSE MGL_SOURCES
21-
MGL/src/*.c
22-
MGL/src/*.m
23-
MGL/spirv_cross_c.cpp
33+
target_link_libraries(mgl PRIVATE
34+
spirv-cross-glsl
35+
spirv-cross-hlsl
36+
spirv-cross-cpp
37+
spirv-cross-reflect
38+
spirv-cross-msl
39+
spirv-cross-util
40+
spirv-cross-core
41+
glslang
2442
)
25-
26-
add_library(mgl STATIC ${MGL_SOURCES})
27-
28-
target_link_libraries(mgl PUBLIC
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"
49-
)
50-
5143
target_link_libraries(mgl PUBLIC
5244
"-framework AppKit"
5345
"-framework Cocoa"
@@ -60,18 +52,6 @@ target_link_libraries(mgl PUBLIC
6052
)
6153

6254
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-
7555
add_executable(mgl_test mgl_test.cpp)
76-
target_link_libraries(mgl_test glfw glm)
56+
target_link_libraries(mgl_test glfw mgl)
7757
endif()

external/SPIRV-Cross

Submodule SPIRV-Cross added at 1884e75

external/build_external.sh

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

external/glfw/src/MGLContext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../MGL/include/MGLContext.h

external/glfw/src/MGLRenderer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../MGL/include/MGLRenderer.h

external/glslang

Submodule glslang added at eb77189

0 commit comments

Comments
 (0)