cmake_minimum_required(VERSION 3.4.1) project(lsplant) find_program(CCACHE ccache) if (CCACHE) set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE}) set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE}) endif () add_definitions(-std=c++20) set(SOURCES lsplant.cc) add_subdirectory(external/dex_builder) add_library(${PROJECT_NAME} SHARED ${SOURCES}) add_library(${PROJECT_NAME}_static STATIC ${SOURCES}) target_include_directories(${PROJECT_NAME} PUBLIC include) target_include_directories(${PROJECT_NAME}_static PUBLIC include) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(${PROJECT_NAME}_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) set(CFLAGS -flto ) target_compile_options(${PROJECT_NAME} PRIVATE ${CFLAGS}) target_link_options(${PROJECT_NAME} PRIVATE -flto) if (NOT DEFINED DEBUG_SYMBOLS_PATH) set(DEBUG_SYMBOLS_PATH ${CMAKE_BINARY_DIR}/symbols) endif() add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${DEBUG_SYMBOLS_PATH}/${ANDROID_ABI} COMMAND ${CMAKE_OBJCOPY} --only-keep-debug $ ${DEBUG_SYMBOLS_PATH}/${ANDROID_ABI}/${PROJECT_NAME} COMMAND ${CMAKE_STRIP} --strip-all $) target_link_libraries(${PROJECT_NAME} PRIVATE dex_builder_static) target_link_libraries(${PROJECT_NAME} PUBLIC log) target_link_libraries(${PROJECT_NAME}_static PRIVATE dex_builder_static) target_link_libraries(${PROJECT_NAME}_static PUBLIC log)