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

Commit 478eefc

Browse files
committed
use submodules for externals
1 parent a4d8564 commit 478eefc

File tree

9 files changed

+44
-89
lines changed

9 files changed

+44
-89
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: 33 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,28 @@
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(SPIRV_CROSS_CLI OFF CACHE INTERNAL "Build the CLI binary. Requires SPIRV_CROSS_STATIC.")
11+
set(SPIRV_CROSS_ENABLE_TESTS OFF CACHE INTERNAL "Enable SPIRV-Cross tests.")
12+
set(SPIRV_CROSS_SKIP_INSTALL ON CACHE INTERNAL "Skips installation targets.")
13+
set(ENABLE_OPT ON CACHE INTERNAL "use spirv-tools inside glslang")
814

9-
include_directories(
15+
add_subdirectory(external/SPIRV-Cross)
16+
add_subdirectory(external/glslang)
17+
add_subdirectory(external/glfw)
18+
19+
file(GLOB_RECURSE MGL_SOURCES
20+
MGL/src/*.c
21+
MGL/src/*.m
22+
MGL/spirv_cross_c.cpp
23+
)
24+
add_library(mgl_static STATIC ${MGL_SOURCES})
25+
target_include_directories(mgl_static PUBLIC
1026
MGL/SPIRV/SPIRV-Cross
1127
MGL/include
1228
MGL/include/GL
@@ -16,39 +32,17 @@ include_directories(
1632
external/glslang/glslang/Include
1733
external/glslang/glslang/Public
1834
)
19-
20-
file(GLOB_RECURSE MGL_SOURCES
21-
MGL/src/*.c
22-
MGL/src/*.m
23-
MGL/spirv_cross_c.cpp
24-
)
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"
35+
target_link_libraries(mgl_static PUBLIC
36+
spirv-cross-glsl
37+
spirv-cross-hlsl
38+
spirv-cross-cpp
39+
spirv-cross-reflect
40+
spirv-cross-msl
41+
spirv-cross-util
42+
spirv-cross-core
43+
glslang
4944
)
50-
51-
target_link_libraries(mgl PUBLIC
45+
target_link_libraries(mgl_static PUBLIC
5246
"-framework AppKit"
5347
"-framework Cocoa"
5448
"-framework CoreFoundation"
@@ -59,19 +53,10 @@ target_link_libraries(mgl PUBLIC
5953
"-framework QuartzCore"
6054
)
6155

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")
56+
target_link_libraries(glfw PUBLIC mgl_static)
7457

58+
option(MGL_BUILD_TEST "Build mgl_test" OFF)
59+
if(MGL_BUILD_TEST)
7560
add_executable(mgl_test mgl_test.cpp)
76-
target_link_libraries(mgl_test glfw glm)
61+
target_link_libraries(mgl_test mgl_static glfw)
7762
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/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ if (GLFW_BUILD_WIN32)
161161
endif()
162162

163163
if (GLFW_BUILD_COCOA)
164-
target_link_libraries(glfw PRIVATE "-L /usr/local/lib -lmgl"
164+
target_link_libraries(glfw PRIVATE "-L /usr/local/lib"
165165
"-framework Cocoa"
166166
"-framework IOKit"
167167
"-framework CoreFoundation")

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)