11cmake_minimum_required (VERSION 3.15)
2- project (MGL LANGUAGES C CXX OBJC OBJCXX )
2+ project (MGL LANGUAGES C CXX OBJC)
33
44execute_process (COMMAND "bash" "clone_external.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR} /external" COMMAND_ECHO STDOUT)
55execute_process (COMMAND "bash" "build_external.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR} /external" COMMAND_ECHO STDOUT)
66
7- # Compiler flags
8- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -fsanitize=address -arch ${CMAKE_SYSTEM_PROCESSOR} " )
9- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g -fsanitize=address -arch ${CMAKE_SYSTEM_PROCESSOR} " )
10- set (CMAKE_OBJC_FLAGS "${CMAKE_OBJC_FLAGS} -O2 -g -fsanitize=address -arch ${CMAKE_SYSTEM_PROCESSOR} " )
11- set (CMAKE_OBJCXX_FLAGS "${CMAKE_OBJCXX_FLAGS} -O2 -g -fsanitize=address -arch ${CMAKE_SYSTEM_PROCESSOR} " )
7+ set (CMAKE_C_STANDARD 17)
8+ set (CMAKE_CXX_STANDARD 20)
129
1310# Include paths
1411include_directories (
@@ -22,43 +19,40 @@ include_directories(
2219
2320# Gather all source files
2421file (GLOB_RECURSE MGL_SOURCES
25- src/*.c
26- src/*.cpp
27- src/*.m
28- src/*.mm
22+ MGL/src/*.c
23+ MGL/src/*.m
24+ MGL/spirv_cross_c.cpp
2925)
3026
3127# Static library target
3228add_library (mgl STATIC ${MGL_SOURCES} )
3329
34- # Link directories
35- target_link_directories (mgl PRIVATE
36- external/SPIRV-Cross/build
37- external/glslang/build /SPIRV
38- external/glslang/build /glslang
39- external/glslang/build /glslang/OSDependent/Unix
40- )
41-
4230# Link libraries
43- target_link_libraries (mgl PRIVATE
44- GenericCodeGen
45- MachineIndependent
46- OSDependent
47- SPIRV
48- glslang
49- glslang-default-resource -limits
50- spirv-cross-c
51- spirv-cross-core
52- spirv-cross-cpp
53- spirv-cross-glsl
54- spirv-cross-hlsl
55- spirv-cross-msl
56- spirv-cross-reflect
31+ 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"
5746)
5847
5948# macOS Frameworks
60- target_link_options (mgl PRIVATE
61- "-framework" "Foundation"
62- "-framework" "Metal"
63- "-framework" "OpenGL"
49+ target_link_libraries (mgl PUBLIC
50+ "-framework AppKit"
51+ "-framework Cocoa"
52+ "-framework CoreFoundation"
53+ "-framework Foundation"
54+ "-framework IOKit"
55+ "-framework Metal"
56+ "-framework OpenGL"
57+ "-framework QuartzCore"
6458)
0 commit comments