57 lines
1.6 KiB
CMake
Executable File
57 lines
1.6 KiB
CMake
Executable File
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(STB)
|
|
find_package(LIQ)
|
|
|
|
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")
|
|
|
|
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
|