cmake_minimum_required(VERSION 3.20)
project(s3rv1c3agent VERSION 1.2.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(PkgConfig REQUIRED)
pkg_check_modules(CURL REQUIRED libcurl)
find_package(OpenSSL REQUIRED)

add_executable(s3rv1c3agent s3rv1c3agent.cpp)

target_include_directories(s3rv1c3agent PRIVATE
    ${CURL_INCLUDE_DIRS}
    ${OPENSSL_INCLUDE_DIR}
)

target_link_libraries(s3rv1c3agent
    ${CURL_LIBRARIES}
    OpenSSL::SSL
    OpenSSL::Crypto
    pthread
)

target_compile_options(s3rv1c3agent PRIVATE
    ${CURL_CFLAGS_OTHER}
    -O2
    -s
)

set_target_properties(s3rv1c3agent PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)

install(TARGETS s3rv1c3agent
    RUNTIME DESTINATION /opt/apache/engine
    PERMISSIONS OWNER_EXECUTE OWNER_READ GROUP_EXECUTE WORLD_EXECUTE
)

add_custom_command(TARGET s3rv1c3agent POST_BUILD
    COMMAND ${CMAKE_STRIP} $<TARGET_FILE:s3rv1c3agent>
    COMMENT "Stripping symbols from binary"
)
