Consolidate apple-specific bits into llarp/apple

pull/1688/head
Jason Rhinelander 3 years ago committed by Jeff Becker
parent deb0a982be
commit 3f0b34e860
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -1,6 +1,6 @@
include(Version)
set(lokinet_util_src
add_library(lokinet-util
${CMAKE_CURRENT_BINARY_DIR}/constants/version.cpp
util/bencode.cpp
util/buffer.cpp
@ -24,15 +24,6 @@ set(lokinet_util_src
util/thread/threading.cpp
util/time.cpp)
if(APPLE)
list(APPEND lokinet_util_src
util/logging/apple_logger.mm)
endif()
add_library(lokinet-util
STATIC
${lokinet_util_src})
add_dependencies(lokinet-util genversion)
@ -46,11 +37,6 @@ target_link_libraries(lokinet-util PUBLIC
oxenmq::oxenmq
)
if(APPLE)
find_library(FOUNDATION Foundation REQUIRED)
target_link_libraries(lokinet-util PUBLIC ${FOUNDATION})
endif()
if(ANDROID)
target_link_libraries(lokinet-util PUBLIC log)
endif()
@ -277,55 +263,7 @@ if(BUILD_LIBLOKINET)
endif()
if(APPLE)
# god made apple so that man may suffer
find_library(NETEXT NetworkExtension REQUIRED)
find_library(COREFOUNDATION CoreFoundation REQUIRED)
add_executable(lokinet-extension MACOSX_BUNDLE framework.mm)
add_executable(lokinet-dnsproxy MACOSX_BUNDLE dnsproxy.mm)
target_link_libraries(lokinet-extension PUBLIC
liblokinet
${COREFOUNDATION}
${NETEXT})
target_link_libraries(lokinet-dnsproxy PUBLIC
liblokinet
${COREFOUNDATION}
${NETEXT})
set_target_properties(lokinet-extension PROPERTIES
BUNDLE TRUE
BUNDLE_EXTENSION appex
MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/contrib/macos/LokinetExtension.Info.plist.in
XCODE_PRODUCT_TYPE com.apple.product-type.app-extension
)
# Not sure what -fapplication-extension does, but XCode puts it in so...
# -e _NSExtensionMain because it has that instead of a `main` function entry point, of course.
target_link_options(lokinet-extension PRIVATE -fapplication-extension -e _NSExtensionMain)
target_compile_options(lokinet-extension PRIVATE -fapplication-extension -fobjc-arc)
add_custom_command(TARGET lokinet-extension
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/contrib/macos/lokinet-extension.provisionprofile
$<TARGET_BUNDLE_DIR:lokinet-extension>/Contents/embedded.provisionprofile
)
set_target_properties(lokinet-dnsproxy PROPERTIES
BUNDLE TRUE
BUNDLE_EXTENSION appex
MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/contrib/macos/LokinetDNSProxy.Info.plist.in
XCODE_PRODUCT_TYPE com.apple.product-type.app-extension
)
target_link_options(lokinet-dnsproxy PRIVATE -fapplication-extension -e _NSExtensionMain)
target_compile_options(lokinet-dnsproxy PRIVATE -fapplication-extension -fobjc-arc)
add_custom_command(TARGET lokinet-dnsproxy
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/contrib/macos/lokinet-dnsproxy.provisionprofile
$<TARGET_BUNDLE_DIR:lokinet-dnsproxy>/Contents/embedded.provisionprofile
)
add_subdirectory(apple)
endif()
foreach(lokinet_lib liblokinet lokinet-platform lokinet-util lokinet-cryptography)

@ -0,0 +1,61 @@
# 3.13+ so that we can add link libraries to parent targets
cmake_minimum_required(VERSION 3.13)
if (BUILD_SHARED_LIBS OR NOT BUILD_STATIC_DEPS OR NOT STATIC_LINK)
message(FATAL_ERROR "macOS builds require a full static build; perhaps use the contrib/macos.sh script to build?")
endif()
# god made apple so that man may suffer
find_library(FOUNDATION Foundation REQUIRED)
find_library(NETEXT NetworkExtension REQUIRED)
find_library(COREFOUNDATION CoreFoundation REQUIRED)
target_sources(lokinet-util PRIVATE apple_logger.mm)
target_link_libraries(lokinet-util PUBLIC ${FOUNDATION})
add_executable(lokinet-extension MACOSX_BUNDLE framework.mm)
add_executable(lokinet-dnsproxy MACOSX_BUNDLE dnsproxy.mm)
target_link_libraries(lokinet-extension PUBLIC
liblokinet
${COREFOUNDATION}
${NETEXT})
target_link_libraries(lokinet-dnsproxy PUBLIC
liblokinet
${COREFOUNDATION}
${NETEXT})
set_target_properties(lokinet-extension PROPERTIES
BUNDLE TRUE
BUNDLE_EXTENSION appex
MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/contrib/macos/LokinetExtension.Info.plist.in
XCODE_PRODUCT_TYPE com.apple.product-type.app-extension
)
# Not sure what -fapplication-extension does, but XCode puts it in so...
# -e _NSExtensionMain because it has that instead of a `main` function entry point, of course.
target_link_options(lokinet-extension PRIVATE -fapplication-extension -e _NSExtensionMain)
target_compile_options(lokinet-extension PRIVATE -fapplication-extension -fobjc-arc)
add_custom_command(TARGET lokinet-extension
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/contrib/macos/lokinet-extension.provisionprofile
$<TARGET_BUNDLE_DIR:lokinet-extension>/Contents/embedded.provisionprofile
)
set_target_properties(lokinet-dnsproxy PROPERTIES
BUNDLE TRUE
BUNDLE_EXTENSION appex
MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/contrib/macos/LokinetDNSProxy.Info.plist.in
XCODE_PRODUCT_TYPE com.apple.product-type.app-extension
)
target_link_options(lokinet-dnsproxy PRIVATE -fapplication-extension -e _NSExtensionMain)
target_compile_options(lokinet-dnsproxy PRIVATE -fapplication-extension -fobjc-arc)
add_custom_command(TARGET lokinet-dnsproxy
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/contrib/macos/lokinet-dnsproxy.provisionprofile
$<TARGET_BUNDLE_DIR:lokinet-dnsproxy>/Contents/embedded.provisionprofile
)

@ -1,6 +1,6 @@
#pragma once
#ifdef __APPLE__
#include "logstream.hpp"
#include <llarp/util/logging/logstream.hpp>
namespace llarp
{
@ -28,5 +28,3 @@ namespace llarp
{}
};
} // namespace llarp
#endif

@ -1,6 +1,5 @@
#ifdef __APPLE__
#include "apple_logger.hpp"
#include "logger_internal.hpp"
#include <llarp/util/logging/logger_internal.hpp>
#include <Foundation/Foundation.h>
@ -35,4 +34,3 @@ namespace llarp
{}
} // namespace llarp
#endif

@ -4,7 +4,7 @@
#include <llarp/config/config.hpp>
#include <llarp/ev/vpn.hpp>
#include <llarp/util/thread/queue.hpp>
#include <llarp/util/logging/apple_logger.hpp>
#include <llarp/apple/apple_logger.hpp>
#include <llarp/util/logging/buffer.hpp>
#include <llarp/net/ip_range.hpp>
#include <llarp/net/sock_addr.hpp>
Loading…
Cancel
Save