cmake_minimum_required(VERSION 3.25) project(skunkworks_c C) #cmake_policy(SET CMP0074 NEW) #set(CMAKE_POLICY_DEFAULT_CMP0074 NEW) cmake_policy(SET CMP0091 NEW) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") set(CMAKE_C_STANDARD 90) SET_TARGET_PROPERTIES(${skunkworks_c} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:zlib.lib") add_subdirectory(subprojects/glew-2.1.0/build/cmake) include_directories(subprojects/glew-2.1.0/include) set(GLFW_BUILD_EXAMPLES OFF) add_subdirectory(subprojects/glfw-3.3.8) include_directories(subprojects/glfw-3.3.8/include) set(PNG_SHARED OFF) set(PNG_BUILD_ZLIB ON) add_subdirectory(subprojects/zlib-1.2.13) include_directories(subprojects/zlib-1.2.13 "${CMAKE_BINARY_DIR}/subprojects/zlib-1.2.13") #set(ZLIB_ROOT subprojects/zlib-1.2.13) set(ZLIB_INCLUDE_DIR subprojects/zlib-1.2.13 "${CMAKE_BINARY_DIR}/subprojects/zlib-1.2.13") #set(ZLIB_LIBRARY zlib) add_subdirectory(subprojects/lpng1639) include_directories(subprojects/lpng1639 "${CMAKE_BINARY_DIR}/subprojects/lpng1639") include_directories(include) include_directories(src) add_library(skunkworks STATIC include/net/http_client.h include/color32.h include/color8.h include/error.h include/file.h include/framebuffer.h include/gamepad.h include/gsa.h include/gsa_input.h include/gsa_map.h include/gsa_text.h include/image32.h include/image8.h include/msvc.h include/renderer.h include/renderer2d.h include/scaler.h include/shader.h include/shaders.h include/skip.h include/skunkworks.h include/str.h include/types.h include/vec2i.h include/vertex_buffer.h include/window.h src/net/http_client.c src/color32.c src/error.c src/file.c src/framebuffer.c src/gamepad.c src/gl.h src/gsa.c src/gsa_input.c src/gsa_map.c src/gsa_text.c src/image32.c src/image8.c src/renderer.c src/renderer2d.c src/scaler.c src/shader.c src/shaders.c src/skip.c src/skunkworks.c src/str.c src/types.c src/vec2i.c src/vertex_buffer.c src/window.c include/vec2f.h src/vec2f.c src/vec4f.c include/vec4f.h src/renderer2d_frag.glsl src/renderer2d_vert.glsl src/shader_copy_frag.glsl src/shader_copy_vert.glsl src/shader_scale_frag.glsl src/gsa_vert.glsl src/gsa_frag.glsl) add_executable(skip tools/skip.c) target_link_libraries(skip skunkworks) add_executable(simple examples/simple.c) add_custom_command(TARGET simple POST_BUILD COMMAND "copy" "src\\*.glsl" "example_data" COMMAND skip "ca1" "example_data" $ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "attaching data to simple.exe") target_link_libraries(simple skunkworks glew_s glfw) add_executable(gsa_simple examples/gsa_simple.c) add_custom_command(TARGET gsa_simple POST_BUILD COMMAND "copy" "src\\*.glsl" "example_data" COMMAND skip "ca1" "example_data" $ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "attaching data to gsa_simple.exe") target_link_libraries(gsa_simple skunkworks glew_s glfw zlibstatic png_static)