mirror of
https://github.com/oxen-io/lokinet
synced 2023-12-14 06:53:00 +01:00
Merge pull request #1566 from majestrate/redo-cmake-setcap-check-2021-03-04
redo cmake setcap check
This commit is contained in:
commit
e379200ba6
|
@ -35,7 +35,7 @@ fi
|
|||
|
||||
mkdir -v "$base"
|
||||
if [ -e daemon/lokinet.exe ]; then
|
||||
cp -av lokinet-*.exe ../lokinet-bootstrap.ps1 "$base"
|
||||
cp -av lokinet-*.exe "$base"
|
||||
# zipit up yo
|
||||
archive="$base.zip"
|
||||
zip -r "$archive" "$base"
|
||||
|
|
|
@ -1,46 +1,51 @@
|
|||
add_executable(lokinet main.cpp)
|
||||
add_executable(lokinet-vpn lokinet-vpn.cpp)
|
||||
enable_lto(lokinet lokinet-vpn)
|
||||
|
||||
if(SHADOW)
|
||||
add_shadow_plugin(shadow-plugin main.cpp ${TRACY_ROOT}/TracyClient.cpp)
|
||||
target_link_libraries(shadow-plugin liblokinet)
|
||||
enable_lto(shadow-plugin)
|
||||
else()
|
||||
add_executable(lokinet main.cpp)
|
||||
add_executable(lokinet-vpn lokinet-vpn.cpp)
|
||||
enable_lto(lokinet lokinet-vpn)
|
||||
|
||||
if(TRACY_ROOT)
|
||||
target_sources(lokinet PRIVATE ${TRACY_ROOT}/TracyClient.cpp)
|
||||
endif()
|
||||
|
||||
foreach(exe lokinet lokinet-vpn)
|
||||
if(WIN32 AND NOT MSVC_VERSION)
|
||||
target_sources(${exe} PRIVATE ../llarp/win32/version.rc)
|
||||
target_link_libraries(${exe} PRIVATE ws2_32 iphlpapi)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
target_link_directories(${exe} PRIVATE /usr/local/lib)
|
||||
endif()
|
||||
target_link_libraries(${exe} PRIVATE liblokinet)
|
||||
if(WITH_JEMALLOC)
|
||||
target_link_libraries(${exe} PUBLIC jemalloc)
|
||||
endif()
|
||||
target_compile_definitions(${exe} PRIVATE -DVERSIONTAG=${GIT_VERSION_REAL})
|
||||
add_log_tag(${exe})
|
||||
install(TARGETS ${exe} RUNTIME DESTINATION bin COMPONENT lokinet)
|
||||
endforeach()
|
||||
|
||||
if(WIN32)
|
||||
install(PROGRAMS ${CMAKE_SOURCE_DIR}/lokinet-bootstrap.ps1 DESTINATION bin COMPONENT lokinet)
|
||||
else()
|
||||
install(PROGRAMS ${CMAKE_SOURCE_DIR}/lokinet-bootstrap DESTINATION bin COMPONENT lokinet)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
option(WITH_SETCAP "Enables setcap'ing the lokinet binary with the required capabilities during installation (requires root)" ON)
|
||||
if(WITH_SETCAP)
|
||||
find_program(setcap_bin NAMES setcap HINTS /sbin /usr/sbin REQUIRED)
|
||||
message(STATUS "found setcap: ${setcap_bin}")
|
||||
install(CODE "execute_process(COMMAND ${setcap_bin} cap_net_admin,cap_net_bind_service=+eip ${CMAKE_INSTALL_PREFIX}/bin/lokinet)")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(TRACY_ROOT)
|
||||
target_sources(lokinet PRIVATE ${TRACY_ROOT}/TracyClient.cpp)
|
||||
endif()
|
||||
|
||||
set(should_install ON)
|
||||
set(SETCAP)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
option(WITH_SETCAP "use setcap when installing" ON)
|
||||
if(WITH_SETCAP)
|
||||
find_program(SETCAP NAMES setcap HINTS /sbin /usr/sbin)
|
||||
if(SETCAP)
|
||||
message(STATUS "Found setcap binary: ${SETCAP}")
|
||||
else()
|
||||
message(WARNING "cannot find setcap binary you will not be able use the install targets unless you use -DWITH_SETCAP=OFF")
|
||||
set(should_install OFF)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
foreach(exe lokinet lokinet-vpn)
|
||||
if(WIN32 AND NOT MSVC_VERSION)
|
||||
target_sources(${exe} PRIVATE ../llarp/win32/version.rc)
|
||||
target_link_libraries(${exe} PRIVATE ws2_32 iphlpapi)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
target_link_directories(${exe} PRIVATE /usr/local/lib)
|
||||
endif()
|
||||
target_link_libraries(${exe} PRIVATE liblokinet)
|
||||
if(WITH_JEMALLOC)
|
||||
target_link_libraries(${exe} PUBLIC jemalloc)
|
||||
endif()
|
||||
target_compile_definitions(${exe} PRIVATE -DVERSIONTAG=${GIT_VERSION_REAL})
|
||||
add_log_tag(${exe})
|
||||
if(should_install)
|
||||
install(TARGETS ${exe} RUNTIME DESTINATION bin COMPONENT lokinet)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(SETCAP)
|
||||
install(CODE "execute_process(COMMAND ${SETCAP} cap_net_admin,cap_net_bind_service=+eip ${CMAKE_INSTALL_PREFIX}/bin/lokinet)")
|
||||
endif()
|
||||
|
||||
if(NOT WIN32)
|
||||
if(should_install)
|
||||
install(PROGRAMS ${CMAKE_SOURCE_DIR}/lokinet-bootstrap DESTINATION bin COMPONENT lokinet)
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
[CmdletBinding()]
|
||||
param ()
|
||||
$web = New-Object System.Net.WebClient
|
||||
if( -not ( Test-Path $env:APPDATA\.lokinet -PathType Container ) )
|
||||
{
|
||||
lokinet.exe -g
|
||||
}
|
||||
|
||||
|
||||
$web.DownloadFile("https://seed.lokinet.org/lokinet.signed", "$env:APPDATA\.lokinet\bootstrap.signed")
|
Loading…
Reference in a new issue