Files
subconverter/CMakeLists.txt
Tindy X b89a8b1f7c Add CMake support
Clean up file structure.
Update build scripts.
2019-12-26 20:37:47 +08:00

59 lines
1.7 KiB
CMake

project(subconverter LANGUAGES CXX)
cmake_minimum_required(VERSION 3.4)
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release)
ENDIF()
SET(CMAKE_CXX_STANDARD 17)
ADD_DEFINITIONS(-Wall -Wextra -Wno-unused-parameter -Wno-unused-result)
ADD_EXECUTABLE(subconverter
src/logger.cpp
src/main.cpp
src/misc.cpp
src/multithread.cpp
src/nodemanip.cpp
src/rapidjson_extra.cpp
src/speedtestutil.cpp
src/subexport.cpp
src/webget.cpp
src/webserver_libevent.cpp)
INCLUDE_DIRECTORIES(src)
SET(THREADS_PREFER_PTHREAD_FLAG ON)
FIND_PACKAGE(Threads REQUIRED)
TARGET_LINK_LIBRARIES(subconverter ${CMAKE_THREAD_LIBS_INIT})
FIND_PACKAGE(LibEvent REQUIRED)
FIND_LIBRARY(LIBEVENT_STATIC_LIBS libevent.a)
INCLUDE_DIRECTORIES(${LIBEVENT_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(subconverter ${LIBEVENT_STATIC_LIBS})
FIND_PACKAGE(CURL 7.54.0 REQUIRED)
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(subconverter ${CURL_LIBRARIES})
ADD_DEFINITIONS(-DCURL_STATICLIB)
FIND_PACKAGE(OpenSSL 1.1.0 REQUIRED)
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(subconverter ${OPENSSL_LIBRARIES})
FIND_PACKAGE(Rapidjson REQUIRED)
INCLUDE_DIRECTORIES(${RAPIDJSON_INCLUDE_DIRS})
FIND_PACKAGE(yaml-cpp REQUIRED)
INCLUDE_DIRECTORIES(${YAML_CPP_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(subconverter yaml-cpp.a)
FIND_PACKAGE(PCRE REQUIRED)
INCLUDE_DIRECTORIES(${PCRE_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(subconverter pcrecpp.a ${PCRE_LIBRARIES})
ADD_DEFINITIONS(-DPCRE_STATIC)
IF(WIN32)
TARGET_LINK_LIBRARIES(subconverter wsock32 ws2_32)
ELSE()
INCLUDE(GNUInstallDirs)
INSTALL(TARGETS subconverter DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()