cmake_minimum_required(VERSION 3.29) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(PROJECT_NAME sillyimg CACHE BOOL "") set(PROJECT_VERSION 1.0) project(${PROJECT_NAME} VERSION ${PROJECT_VERSION}) ############################################################## list(APPEND CMAKE_MODULE_PATH "/opt/cmake") find_package(LIQ) find_package(STB) include(FetchContent) FetchContent_Declare( argparse GIT_REPOSITORY https://github.com/p-ranav/argparse.git ) FetchContent_MakeAvailable(argparse) ############################################################## # yes... im using glob... dont judge me.... file(GLOB_RECURSE PROJECT_SOURCES CONFIGURE_DEPENDS "src/*.cpp") file(GLOB EXTERNAL_SOURCES CONFIGURE_DEPENDS "external/murmurhash/murmurhash.c" "external/FastLZ/fastlz.c") set(PROJECT_INCLUDE "src" ${STB_INCLUDE_DIRS} ${LIQ_INCLUDE_DIRS} "external/ChernoTimer" "external/murmurhash" "external/FastLZ") set(PROJECT_LIBRARY argparse ${LIQ_LIBRARIES}) set(PROJECT_DEFINITION RESOURCE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/resource/") ############################################################## add_executable(${PROJECT_NAME} ${PROJECT_SOURCES} ${EXTERNAL_SOURCES}) target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_INCLUDE}) target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_LIBRARY}) target_compile_definitions(${PROJECT_NAME} PUBLIC ${PROJECT_DEFINITION}) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/dist")