goldberg_emulator/curl/CMakeLists.txt

80 lines
2.0 KiB
CMake
Raw Normal View History

#CMAKE_TOOLCHAIN_FILE
project(goldberg_emulator_protobuf)
cmake_minimum_required(VERSION 3.0)
if(WIN32)
# Detect arch on Windows
if( ${CMAKE_SIZEOF_VOID_P} EQUAL 8)
set(X64 ON)
else()
set(X86 ON)
endif()
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE)
else()
add_compile_options(-std=c++11)
endif()
set(win_libs Iphlpapi ws2_32)
if(X64)
set(STEAM_NAME steam_api64)
elseif(X86)
set(STEAM_NAME steam_api)
else()
message(FATAL_ERROR "Arch unknown")
endif()
elseif(APPLE)
message(FATAL_ERROR "No CMake for Apple")
else()
if(X64)
set(CMAKE_C_FLAGS "-m64")
set(CMAKE_CXX_FLAGS "-m64")
elseif(X86)
set(CMAKE_C_FLAGS "-m32")
set(CMAKE_CXX_FLAGS "-m32")
else()
message(FATAL_ERROR "Arch unknown")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fPIC")
endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CURL_VERSION "7.65.3")
set(CURL_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(CURL_RELEASE_URL "https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.xz")
set(CURL_SRC curl-src)
if( NOT EXISTS ${CURL_DIR}/${CURL_SRC} )
file(
DOWNLOAD ${CURL_RELEASE_URL} ${CURL_DIR}/curl.tar.xz
SHOW_PROGRESS
EXPECTED_HASH MD5=7bd5b2ebfd3f591034eb8b55314d8c02
)
if( NOT EXISTS ${CURL_DIR}/curl.tar.xz )
message(FATAL_ERROR "Download of curl failed")
endif()
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar -xf curl.tar.xz
WORKING_DIRECTORY ${CURL_DIR}
)
file(REMOVE ${CURL_DIR}/curl.tar.xz)
file(RENAME ${CURL_DIR}/curl-${CURL_VERSION} "${CURL_SRC}")
endif()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
add_subdirectory(${CURL_DIR}/${CURL_SRC})