From 3f42c61ead715884ac6b1f85c0b6054ff437646d Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 1 Nov 2018 13:01:39 +0100 Subject: Initial import --- app/CMakeLists.txt | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 app/CMakeLists.txt (limited to 'app/CMakeLists.txt') diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt new file mode 100644 index 0000000..c56f72d --- /dev/null +++ b/app/CMakeLists.txt @@ -0,0 +1,86 @@ +# For more information about using CMake with Android Studio, read the +# documentation: https://d.android.com/studio/projects/add-native-code.html + +# Sets the minimum version of CMake required to build the native library. + +cmake_minimum_required(VERSION 3.4.1) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/libs/cmake) + +# OpenSSL stuff +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/openssl/include) +add_custom_command(OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libssl.so ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libcrypto.so + COMMAND ${CMAKE_COMMAND} -E env + SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/libs/openssl + OUTPUT_DIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + ANDROID_NDK=${ANDROID_NDK} + ANDROID_ABI=${ANDROID_ABI} + ANDROID_LLVM_TOOLCHAIN_PREFIX=${ANDROID_LLVM_TOOLCHAIN_PREFIX} + ${CMAKE_CURRENT_SOURCE_DIR}/libs/build-openssl.sh + COMMENT "Building OpenSSL" + WORKING_DIRECTORY openssl) +add_custom_target(openssl DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libssl.so ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libcrypto.so) + +add_library(libssl SHARED IMPORTED) +add_dependencies(libssl openssl) +set_property(TARGET libssl PROPERTY IMPORTED_LOCATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libssl.so) +set_property(TARGET libssl PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}/openssl/include ${CMAKE_CURRENT_SOURCE_DIR}/libs/openssl/include) + +add_library(libcrypto SHARED IMPORTED) +add_dependencies(libcrypto openssl) +set_property(TARGET libcrypto PROPERTY IMPORTED_LOCATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libcrypto.so) +set_property(TARGET libssl PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}/openssl/include ${CMAKE_CURRENT_SOURCE_DIR}/libs/openssl/include) + +# libjpeg-turbo +set(ENABLE_STATIC OFF CACHE BOOL "Disable turbojpeg static libs") +set(WITH_TURBOJPEG OFF CACHE BOOL "Disable turbojpeg libturbojpeg") +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libs/libjpeg-turbo libjpeg-turbo EXCLUDE_FROM_ALL) +target_include_directories(jpeg + INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/libs/libjpeg-turbo + INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo + ) + +# libvncserver +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libs/libvncserver libvncserver EXCLUDE_FROM_ALL) + +# Creates and names a library, sets it as either STATIC +# or SHARED, and provides the relative paths to its source code. +# You can define multiple libraries, and CMake builds them for you. +# Gradle automatically packages shared libraries with your APK. + +add_library( # Sets the name of the library. + native-lib + + # Sets the library as a shared library. + SHARED + + # Provides a relative path to your source file(s). + src/main/cpp/native-lib.cpp ) + +# Searches for a specified prebuilt library and stores the path as a +# variable. Because CMake includes system libraries in the search path by +# default, you only need to specify the name of the public NDK library +# you want to add. CMake verifies that the library exists before +# completing its build. + +find_library( # Sets the name of the path variable. + log-lib + + # Specifies the name of the NDK library that + # you want CMake to locate. + log ) + +# Specifies libraries CMake should link to your target library. You +# can link multiple libraries, such as libraries you define in this +# build script, prebuilt third-party libraries, or system libraries. + +target_link_libraries( # Specifies the target library. + native-lib + + libssl + libcrypto + jpeg + vncserver + + # Links the target library to the log library + # included in the NDK. + ${log-lib} ) \ No newline at end of file -- cgit v1.2.3