From 77b4efd78be5ec73ef93d42415e87421f0b23cc3 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 7 Oct 2019 00:23:30 +0100 Subject: [PATCH] fixup ios --- CMakeLists.txt | 11 ----------- cmake/add_log_tag.cmake | 10 ++++++---- cmake/basic_definitions.cmake | 6 +++++- cmake/unix.cmake | 15 ++++++++------- cmake/win32.cmake | 16 ++++++++-------- libabyss/CMakeLists.txt | 17 ++++++++--------- ui-ios/CMakeLists.txt | 2 ++ 7 files changed, 37 insertions(+), 40 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dad81fce6..026a96faf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,17 +213,6 @@ if(ANDROID) set(ANDROID_PLATFORM_SRC android/ifaddrs.c) endif(ANDROID) -set(LIBTUNTAP_SRC_BASE - ${TT_ROOT}/tuntap.cpp - ${TT_ROOT}/tuntap_log.cpp - ${LIBTUNTAP_IMPL}) - -if(UNIX) - set(LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix.c ${LIBTUNTAP_SRC_BASE}) -else() - set(LIBTUNTAP_SRC ${LIBTUNTAP_SRC_BASE}) -endif() - set(LIBS ${MALLOC_LIB} ${FS_LIB} ${LIBUV_LIBRARY}) add_subdirectory(crypto) diff --git a/cmake/add_log_tag.cmake b/cmake/add_log_tag.cmake index 77f1de1cf..c91fc809f 100644 --- a/cmake/add_log_tag.cmake +++ b/cmake/add_log_tag.cmake @@ -1,6 +1,8 @@ function(add_log_tag target) - get_target_property(TARGET_SRCS ${target} SOURCES) - foreach(F ${TARGET_SRCS}) - set_source_files_properties(${F} PROPERTIES COMPILE_FLAGS -DLOG_TAG=\\\"${F}\\\") - endforeach(F) + if(TARGET ${target}) + get_target_property(TARGET_SRCS ${target} SOURCES) + foreach(F ${TARGET_SRCS}) + set_source_files_properties(${F} PROPERTIES COMPILE_FLAGS -DLOG_TAG=\\\"${F}\\\") + endforeach(F) + endif() endfunction() diff --git a/cmake/basic_definitions.cmake b/cmake/basic_definitions.cmake index d89364363..7362e70ca 100644 --- a/cmake/basic_definitions.cmake +++ b/cmake/basic_definitions.cmake @@ -9,8 +9,12 @@ set(ANDROID_LIB ${LIB}android) set(ABYSS libabyss) set(ABYSS_LIB abyss) set(ABYSS_EXE ${ABYSS_LIB}-main) -get_filename_component(TT_ROOT "vendor/libtuntap-master" ABSOLUTE) +get_filename_component(TT_ROOT "${CMAKE_CURRENT_LIST_DIR}/../vendor/libtuntap-master" ABSOLUTE) add_definitions(-D${CMAKE_SYSTEM_NAME}) get_filename_component(CORE_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/include" ABSOLUTE) get_filename_component(ABYSS_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/${ABYSS}/include" ABSOLUTE) + +set(LIBTUNTAP_SRC + ${TT_ROOT}/tuntap.cpp + ${TT_ROOT}/tuntap_log.cpp) diff --git a/cmake/unix.cmake b/cmake/unix.cmake index 3d437f159..ebca06117 100644 --- a/cmake/unix.cmake +++ b/cmake/unix.cmake @@ -7,6 +7,7 @@ include(CheckLibraryExists) add_definitions(-DUNIX) add_definitions(-DPOSIX) +list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix.c) if (STATIC_LINK_RUNTIME OR STATIC_LINK) set(LIBUV_USE_STATIC ON) @@ -30,7 +31,7 @@ endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(FS_LIB stdc++fs) - get_filename_component(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-unix-linux.c ABSOLUTE) + list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix-linux.c) elseif(${CMAKE_SYSTEM_NAME} MATCHES "Android") find_library(FS_LIB NAMES c++fs c++experimental stdc++fs) if(FS_LIB STREQUAL FS_LIB-NOTFOUND) @@ -38,14 +39,14 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Android") add_definitions(-DLOKINET_USE_CPPBACKPORT) set(FS_LIB cppbackport) endif() - get_filename_component(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-unix-linux.c ABSOLUTE) + list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix-linux.c) elseif (${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") - set(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-unix-openbsd.c ${TT_ROOT}/tuntap-unix-bsd.c) + list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix-openbsd.c ${TT_ROOT}/tuntap-unix-bsd.c) elseif (${CMAKE_SYSTEM_NAME} MATCHES "NetBSD") - set(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-unix-netbsd.c ${TT_ROOT}/tuntap-unix-bsd.c) + list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix-netbsd.c ${TT_ROOT}/tuntap-unix-bsd.c) elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "DragonFly") find_library(FS_LIB NAMES c++experimental) - set(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-unix-freebsd.c ${TT_ROOT}/tuntap-unix-bsd.c) + list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix-freebsd.c ${TT_ROOT}/tuntap-unix-bsd.c) elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "iOS") find_library(FS_LIB NAMES c++fs c++experimental stdc++fs) if(FS_LIB STREQUAL FS_LIB-NOTFOUND) @@ -53,9 +54,9 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "i add_definitions(-DLOKINET_USE_CPPBACKPORT) set(FS_LIB cppbackport) endif() - set(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-unix-darwin.c ${TT_ROOT}/tuntap-unix-bsd.c) + list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix-darwin.c ${TT_ROOT}/tuntap-unix-bsd.c) elseif (${CMAKE_SYSTEM_NAME} MATCHES "SunOS") - set(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-unix-sunos.c) + list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-unix-sunos.c) # Apple C++ screws up name decorations in stdc++fs, causing link to fail # Samsung does not build c++experimental or c++fs in their Apple libc++ pkgsrc build if (LIBUV_USE_STATIC) diff --git a/cmake/win32.cmake b/cmake/win32.cmake index a875a189a..05dbd7f40 100644 --- a/cmake/win32.cmake +++ b/cmake/win32.cmake @@ -21,17 +21,17 @@ if(NOT MSVC_VERSION) # to .r[o]data section one after the other! add_compile_options(-fno-ident -Wa,-mbig-obj) link_libraries( -lws2_32 -liphlpapi -lshlwapi -ldbghelp ) - add_definitions(-DWINVER=0x0500 -D_WIN32_WINNT=0x0500) - # Wait a minute, if we're not Microsoft C++, nor a Clang paired with Microsoft C++, - # then the only possible option has to be GNU or a GNU-linked Clang! + add_definitions(-DWINVER=0x0500 -D_WIN32_WINNT=0x0500) + # Wait a minute, if we're not Microsoft C++, nor a Clang paired with Microsoft C++, + # then the only possible option has to be GNU or a GNU-linked Clang! set(FS_LIB stdc++fs) endif() - -if(EMBEDDED_CFG) - link_libatomic() + +if(EMBEDDED_CFG) + link_libatomic() endif() - -get_filename_component(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-windows.c ABSOLUTE) + +list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-windows.c) get_filename_component(EV_SRC "llarp/ev/ev_win32.cpp" ABSOLUTE) add_definitions(-DWIN32_LEAN_AND_MEAN -DWIN32 -DWINVER=0x0500) set(EXE_LIBS ${STATIC_LIB} ${FS_LIB} ws2_32 iphlpapi) diff --git a/libabyss/CMakeLists.txt b/libabyss/CMakeLists.txt index a92f86786..f013d14a0 100644 --- a/libabyss/CMakeLists.txt +++ b/libabyss/CMakeLists.txt @@ -4,20 +4,19 @@ add_library(${ABYSS_LIB} "${CMAKE_CURRENT_SOURCE_DIR}/src/md5.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/src/server.cpp") target_include_directories(${ABYSS_LIB} PUBLIC include) +target_link_libraries(${ABYSS_LIB} PUBLIC ${PLATFORM_LIB}) -if(NOT WIN32) - target_link_libraries(${ABYSS_LIB} PUBLIC ${PLATFORM_LIB} ${LIBUV_LIBRARY}) +if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL iOS) + target_link_libraries(${ABYSS_LIB} PUBLIC ${LIBUV_LIBRARY}) add_executable(${ABYSS_EXE} main.cpp) target_link_libraries(${ABYSS_EXE} PUBLIC ${ABYSS_LIB} Threads::Threads ${LIBS}) -elseif(NOT MSVC_VERSION) - target_link_libraries(${ABYSS_LIB} PUBLIC ${PLATFORM_LIB}) - add_executable(${ABYSS_EXE} main.cpp llarp/win32/abyss.rc) - target_link_libraries(${ABYSS_EXE} PUBLIC ${ABYSS_LIB} ${STATIC_LIB} ws2_32) -else() - target_link_libraries(${ABYSS_LIB} PUBLIC ${PLATFORM_LIB}) +elseif(MSVC_VERSION) add_executable(${ABYSS_EXE} main.cpp) target_link_libraries(${ABYSS_EXE} PUBLIC ${ABYSS_LIB} ${STATIC_LIB} ws2_32) -endif(NOT WIN32) +elseif(NOT CMAKE_SYSTEM_NAME STREQUAL iOS) + add_executable(${ABYSS_EXE} main.cpp llarp/win32/abyss.rc) + target_link_libraries(${ABYSS_EXE} PUBLIC ${ABYSS_LIB} ${STATIC_LIB} ws2_32) +endif() # for freebsd if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") diff --git a/ui-ios/CMakeLists.txt b/ui-ios/CMakeLists.txt index 52237af85..8e1a98e67 100644 --- a/ui-ios/CMakeLists.txt +++ b/ui-ios/CMakeLists.txt @@ -31,7 +31,9 @@ add_subdirectory(${libuv_SOURCE_DIR} ${libuv_BINARY_DIR}) include("${LOKINET_ROOT}/cmake/basic_definitions.cmake") set(LIBUV_IN_SOURCE ON) +set(LIBUV_LIBRARY uv_a) include("${LOKINET_ROOT}/cmake/unix.cmake") +unset(LIBTUNTAP_SRC) find_package(Threads REQUIRED)