#!/usr/bin/cmake cmake_minimum_required (VERSION 3.18) # ------------------------------------------------------------------------------------------------- project( STB VERSION 2022.09.08 DESCRIPTION "Toolbox of single-header replacements for common libraries" ) include("../../BuildSystem/cmake/cplusplus.cmake") # ------------------------------------------------------------------------------------------------- if(NOT EXISTS ${PROJECT_SOURCE_DIR}/downloads/stb-2022-09-08.zip) message(STATUS "Downloading STB headers") file( DOWNLOAD https://github.com/nothings/stb/archive/8b5f1f37b5b75829fc72d38e7b5d4bcbf8a26d55.zip ${PROJECT_SOURCE_DIR}/downloads/stb-2022-09-08.zip SHOW_PROGRESS EXPECTED_HASH SHA256=93a16ee3e866e719feec459f6f132cce932c5ec751eb38e3ec1975f911353d2e STATUS DOWNLOAD_STATUS ) if(NOT DOWNLOAD_STATUS EQUAL 0) file(REMOVE ${PROJECT_SOURCE_DIR}/downloads/stb-2022-09-08.zip) message(FATAL_ERROR "Download failed, stopping build (error ${DOWNLOAD_STATUS})") endif() endif() # ------------------------------------------------------------------------------------------------- if(NOT EXISTS ${PROJECT_SOURCE_DIR}/build) message(STATUS "Extracting STB sources") file( ARCHIVE_EXTRACT INPUT ${PROJECT_SOURCE_DIR}/downloads/stb-2022-09-08.zip DESTINATION ${CMAKE_BINARY_DIR}/extract ) file( RENAME ${CMAKE_BINARY_DIR}/extract/stb-8b5f1f37b5b75829fc72d38e7b5d4bcbf8a26d55 ${PROJECT_SOURCE_DIR}/build ) endif() # ------------------------------------------------------------------------------------------------- set( headerFiles "build/stb_connected_components.h" "build/stb_c_lexer.h" "build/stb_divide.h" "build/stb_ds.h" "build/stb_dxt.h" "build/stb_easy_font.h" "build/stb_herringbone_wang_tile.h" "build/stb_hexwave.h" "build/stb_image.h" "build/stb_image_resize.h" "build/stb_image_write.h" "build/stb_include.h" "build/stb_leakcheck.h" "build/stb_perlin.h" "build/stb_rect_pack.h" "build/stb_sprintf.h" "build/stb_textedit.h" "build/stb_tilemap_editor.h" "build/stb_truetype.h" "build/stb_voxel_render.h" ) # ------------------------------------------------------------------------------------------------- add_library(STB INTERFACE) add_library(STB::Static ALIAS STB) target_include_directories( STB INTERFACE "build/" )