11cmake_minimum_required (VERSION 3.15)
22project (MGL LANGUAGES C CXX OBJC)
33
4- execute_process (COMMAND "bash" "clone_external.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR} /external" COMMAND_ECHO STDOUT)
54execute_process (COMMAND "bash" "build_external.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR} /external" COMMAND_ECHO STDOUT)
65
76set (CMAKE_C_STANDARD 17)
87set (CMAKE_CXX_STANDARD 20)
98
10- # Include paths
119include_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
2120file (GLOB_RECURSE MGL_SOURCES
2221 MGL/src/*.c
2322 MGL/src/*.m
2423 MGL/spirv_cross_c.cpp
2524)
2625
27- # Static library target
2826add_library (mgl STATIC ${MGL_SOURCES} )
2927
30- # Link libraries
3128target_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
4951target_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()
0 commit comments