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 (
10+ #external/SPIRV-Headers/include
11+ #external/SPIRV-Tools/include
1212 MGL/SPIRV/SPIRV-Cross
1313 MGL/include
1414 MGL/include /GL
1515 external/SPIRV-Cross
16- external/SPIRV-Tools/ include
16+ external/glslang/SPIRV
1717 external/glslang/glslang/Include
18+ external/glslang/glslang/Public
1819)
1920
20- # Gather all source files
2121file (GLOB_RECURSE MGL_SOURCES
2222 MGL/src/*.c
2323 MGL/src/*.m
2424 MGL/spirv_cross_c.cpp
2525)
2626
27- # Static library target
2827add_library (mgl STATIC ${MGL_SOURCES} )
2928
30- # Link libraries
3129target_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"
30+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross /build/libspirv-cross-c .a"
31+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross /build/libspirv-cross-core .a"
32+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross /build/libspirv-cross-cpp .a"
33+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross /build/libspirv-cross-glsl .a"
34+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross /build/libspirv-cross-hlsl .a"
35+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross /build/libspirv-cross-msl .a"
36+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross/build/libspirv-cross-reflect .a"
37+ "${CMAKE_CURRENT_SOURCE_DIR } /external/SPIRV-Cross/build/libspirv-cross-util .a"
38+ "${CMAKE_CURRENT_SOURCE_DIR } /external/glslang /build/SPIRV/libSPIRV .a"
39+ "${CMAKE_CURRENT_SOURCE_DIR } /external/glslang /build/glslang/OSDependent/Unix/libOSDependent .a"
40+ "${CMAKE_CURRENT_SOURCE_DIR } /external/glslang /build/glslang/libGenericCodeGen .a"
41+ "${CMAKE_CURRENT_SOURCE_DIR } /external/glslang /build/glslang/libMachineIndependent .a"
42+ "${CMAKE_CURRENT_SOURCE_DIR } /external/glslang /build/glslang/libglslang-default-resource-limits .a"
43+ "${CMAKE_CURRENT_SOURCE_DIR } /external/glslang /build/glslang/libglslang .a"
4644)
4745
48- # macOS Frameworks
4946target_link_libraries (mgl PUBLIC
5047 "-framework AppKit"
5148 "-framework Cocoa"
@@ -56,3 +53,20 @@ target_link_libraries(mgl PUBLIC
5653 "-framework OpenGL"
5754 "-framework QuartzCore"
5855)
56+
57+ if (MGL_BUILD_TEST)
58+ add_library (glfw-imp STATIC IMPORTED )
59+ set_target_properties (glfw-imp PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR} /external/glfw/build/src/libglfw3.a" )
60+
61+ add_library (glfw INTERFACE )
62+ target_link_libraries (glfw INTERFACE glfw-imp mgl)
63+ target_include_directories (glfw INTERFACE "external/glfw/include" )
64+
65+ add_dependencies (glfw mgl)
66+
67+ add_library (glm INTERFACE )
68+ target_include_directories (glm INTERFACE "mgl/MGL/include" )
69+
70+ add_executable (mgl_test mgl_test.cpp)
71+ target_link_libraries (mgl_test glfw glm)
72+ endif ()
0 commit comments