Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

redo cmake setcap check #1566

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion contrib/ci/drone-static-upload.sh
Expand Up @@ -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"
Expand Down
83 changes: 44 additions & 39 deletions daemon/CMakeLists.txt
@@ -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()
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()
set(should_install ON)
set(SETCAP)

if(WIN32)
install(PROGRAMS ${CMAKE_SOURCE_DIR}/lokinet-bootstrap.ps1 DESTINATION bin COMPONENT lokinet)
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()
install(PROGRAMS ${CMAKE_SOURCE_DIR}/lokinet-bootstrap DESTINATION bin COMPONENT lokinet)
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()

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()

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()
10 changes: 0 additions & 10 deletions lokinet-bootstrap.ps1

This file was deleted.