cmake_minimum_required(VERSION 3.10)
project(qfwpack C)

set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)

if(NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE Release)
endif()

add_executable(qfwpack
  src/main.c src/qfw.c src/pc1.c src/cksum.c src/util.c
  src/tario.c src/gz.c src/lzma_dec.c src/sniff.c src/unpack.c
  third_party/miniz/miniz.c third_party/lzma/LzmaDec.c)

target_include_directories(qfwpack PRIVATE third_party/miniz third_party/lzma)
target_compile_definitions(qfwpack PRIVATE _FILE_OFFSET_BITS=64)

if(MSVC)
  target_compile_options(qfwpack PRIVATE /utf-8 /W3)
  target_compile_definitions(qfwpack PRIVATE _CRT_SECURE_NO_WARNINGS)
else()
  target_compile_options(qfwpack PRIVATE -Wall -Wextra -Wno-unused-parameter)
endif()

option(QFW_STATIC "Link statically (portable across glibc versions)" OFF)
if(QFW_STATIC AND NOT MSVC)
  target_link_options(qfwpack PRIVATE -static)
endif()
