From d447dc99b0b000ee260f8fecc96f09a2c8310bc7 Mon Sep 17 00:00:00 2001 From: sman Date: Sun, 3 Jan 2021 21:17:46 +0800 Subject: [PATCH] Build by CMake --- app/src/CMakeLists.txt | 63 +++++++++++++++++++++++++++++++++++++ app/src/config.h.in | 23 ++++++++++++++ app/src/util/CMakeLists.txt | 8 +++++ 3 files changed, 94 insertions(+) create mode 100644 app/src/CMakeLists.txt create mode 100644 app/src/config.h.in create mode 100644 app/src/util/CMakeLists.txt diff --git a/app/src/CMakeLists.txt b/app/src/CMakeLists.txt new file mode 100644 index 00000000..a1758e06 --- /dev/null +++ b/app/src/CMakeLists.txt @@ -0,0 +1,63 @@ +cmake_minimum_required(VERSION 3.17) +project(scrcpy) + +set(CMAKE_C_FLAGS "-std=c11") + +SET(ROUT_DIR ${PROJECT_SOURCE_DIR}) +SET(ANDROID_DIR ${PROJECT_SOURCE_DIR}/android) +SET(UTIL_DIR ${PROJECT_SOURCE_DIR}/util) + +include_directories(${ROUT_DIR} ${ANDROID_DIR} ${UTIL_DIR}) +AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR} FILES) + +find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h) +find_library(AVFORMAT_LIBRARY avformat) +find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h) +find_library(AVCODEC_LIBRARY avcodec) +find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h) +find_library(AVUTIL_LIBRARY avutil) + +find_package(sdl2 REQUIRED) + +SET(THIRD_INCLUDE_DIR ${AVFORMAT_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR} ${SDL2_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${THIRD_INCLUDE_DIR}) + +SET(THIRD_LIBS ${AVFORMAT_LIBRARY} ${AVCODEC_LIBRARY} ${AVUTIL_LIBRARY} ${SDL2_LIBRARIES}) + +ADD_SUBDIRECTORY(util) + +IF (CMAKE_SYSTEM_NAME MATCHES "Windows") + set(SOURCE ${PROJECT_SOURCE_DIR}/sys/win) + aux_source_directory(${SOURCE} FILE) + + SET(SRC ${FILES} ${FILE}) + ADD_EXECUTABLE(${PROJECT_NAME} ${SRC}) +else() + set(SOURCE ${PROJECT_SOURCE_DIR}/sys/unix) + aux_source_directory(${SOURCE} FILE) + + SET(SRC ${FILES} ${FILE}) + ADD_EXECUTABLE(${PROJECT_NAME} ${SRC}) +endif (CMAKE_SYSTEM_NAME MATCHES "Windows") + +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${THIRD_LIBS} util) + +# FOR CONFIG.H +SET(DEFAULT_BIT_RATE 8000000) +SET(DEFAULT_LOCAL_PORT_RANGE_FIRST 27183) +SET(DEFAULT_LOCAL_PORT_RANGE_LAST 27199) +SET(DEFAULT_MAX_SIZE 0) +SET(DEFAULT_LOCK_VIDEO_ORIENTATION -1) +SET(PREFIX \"\") +SET(SCRCPY_VERSION \"V1.16\") + +OPTION(HIDPI_SUPPORT "hidpi support" ON) +OPTION(NDEBUG "build type" OFF) +OPTION(SERVER_DEBUGGER "server debugger" ON) +OPTION(SERVER_DEBUGGER_METHOD_NEW "server_debugger_method" ON) +OPTION(WINDOWS_NOCONSOLE, "WINDOWS NOCONSOLE" OFF) + +configure_file ( + "${PROJECT_SOURCE_DIR}/config.h.in" + "${PROJECT_SOURCE_DIR}/config.h" +) \ No newline at end of file diff --git a/app/src/config.h.in b/app/src/config.h.in new file mode 100644 index 00000000..2a4c75a6 --- /dev/null +++ b/app/src/config.h.in @@ -0,0 +1,23 @@ +#define DEFAULT_BIT_RATE @DEFAULT_BIT_RATE@ + +#define DEFAULT_LOCAL_PORT_RANGE_FIRST @DEFAULT_LOCAL_PORT_RANGE_FIRST@ + +#define DEFAULT_LOCAL_PORT_RANGE_LAST @DEFAULT_LOCAL_PORT_RANGE_LAST@ + +#define DEFAULT_LOCK_VIDEO_ORIENTATION @DEFAULT_LOCK_VIDEO_ORIENTATION@ + +#define DEFAULT_MAX_SIZE @DEFAULT_MAX_SIZE@ + +#define PREFIX @PREFIX@ + +#define SCRCPY_VERSION @SCRCPY_VERSION@ + +#cmakedefine HIDPI_SUPPORT + +#cmakedefine NDEBUG + +#cmakedefine SERVER_DEBUGGER + +#cmakedefine SERVER_DEBUGGER_METHOD_NEW + +#cmakedefine WINDOWS_NOCONSOLE diff --git a/app/src/util/CMakeLists.txt b/app/src/util/CMakeLists.txt new file mode 100644 index 00000000..11148a65 --- /dev/null +++ b/app/src/util/CMakeLists.txt @@ -0,0 +1,8 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.17) +PROJECT(util) + +INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR} ${ROOT_DIR}) + +AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR} FILES) + +ADD_LIBRARY(${PROJECT_NAME} ${FILES})