Add CMake support

Clean up file structure.
Update build scripts.
This commit is contained in:
Tindy X
2019-12-26 20:37:47 +08:00
parent e5eb7a4ae2
commit b89a8b1f7c
136 changed files with 326 additions and 88 deletions

View File

@@ -11,8 +11,7 @@ matrix:
compiler: clang
osx_image: xcode10.3
script:
- chmod +x build.macos.release.sh
- ./build.macos.release.sh
- bash scripts/build.macos.release.sh
deploy:
provider: releases
api_key: "$GITHUB_OAUTH_TOKEN"
@@ -24,7 +23,7 @@ matrix:
- services: docker
script:
- docker pull alpine:latest
- docker run -v $TRAVIS_BUILD_DIR:/root/workdir alpine:latest /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x build.alpine.release.sh && bash build.alpine.release.sh"
- docker run -v $TRAVIS_BUILD_DIR:/root/workdir alpine:latest /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
deploy:
provider: releases
api_key: "$GITHUB_OAUTH_TOKEN"

58
CMakeLists.txt Normal file
View File

@@ -0,0 +1,58 @@
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()

Some files were not shown because too many files have changed in this diff Show More