Moar rustiness.

This commit is contained in:
Adam Ierymenko 2020-12-10 16:48:30 -05:00
parent 0b7e0b20a8
commit b0239984a0
No known key found for this signature in database
GPG key ID: C8877CF2D7A5D7F3
5 changed files with 102 additions and 80 deletions

View file

@ -20,15 +20,15 @@ project(zerotier
if(NOT PACKAGE_STATIC) if(NOT PACKAGE_STATIC)
find_program( #find_program(
GO go # GO go
HINTS "/usr/local/go/bin" "/usr/bin" "/usr/local/bin" "C:/go/bin" # HINTS "/usr/local/go/bin" "/usr/bin" "/usr/local/bin" "C:/go/bin"
) #)
if(NOT GO) #if(NOT GO)
message(FATAL_ERROR "Golang not found") # message(FATAL_ERROR "Golang not found")
else(NOT GO) #else(NOT GO)
message(STATUS "Found Golang at ${GO}") # message(STATUS "Found Golang at ${GO}")
endif(NOT GO) #endif(NOT GO)
set(default_build_type "Release") set(default_build_type "Release")
@ -90,10 +90,10 @@ if(NOT PACKAGE_STATIC)
$<$<CONFIG:RELWITHDEBINFO>:-g> $<$<CONFIG:RELWITHDEBINFO>:-g>
) )
set(GOFLAGS #set(GOFLAGS
-a # -a
-trimpath # -trimpath
) #)
if(BUILD_32BIT) if(BUILD_32BIT)
set(CMAKE_SYSTEM_PROCESSOR "x86" CACHE STRING "system processor") set(CMAKE_SYSTEM_PROCESSOR "x86" CACHE STRING "system processor")
@ -110,16 +110,16 @@ if(NOT PACKAGE_STATIC)
else(WIN32) else(WIN32)
set(GOFLAGS #set(GOFLAGS
-trimpath # -trimpath
-buildmode=pie # -buildmode=pie
) #)
if(APPLE) if(APPLE)
message("++ Setting MacOS Compiler Flags ${CMAKE_BUILD_TYPE}") message("++ Setting MacOS Compiler Flags ${CMAKE_BUILD_TYPE}")
set(MACOS_VERSION_MIN "10.12") set(MACOS_VERSION_MIN "10.14")
add_compile_options( add_compile_options(
-Wall -Wall
@ -142,11 +142,11 @@ if(NOT PACKAGE_STATIC)
$<$<CONFIG:RELEASE>:-flto> $<$<CONFIG:RELEASE>:-flto>
) )
set(GOFLAGS #set(GOFLAGS
${GOFLAGS} # ${GOFLAGS}
-a # -a
-ldflags '-w -extldflags \"-Wl,-undefined -Wl,dynamic_lookup\"' # -ldflags '-w -extldflags \"-Wl,-undefined -Wl,dynamic_lookup\"'
) #)
else(APPLE) else(APPLE)
@ -191,18 +191,18 @@ if(NOT PACKAGE_STATIC)
-static -static
) )
set(CMAKE_EXE_LINKER_FLAGS "-static ${CMAKE_EXE_LINKER_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "-static ${CMAKE_EXE_LINKER_FLAGS}")
set(GOFLAGS #set(GOFLAGS
${GOFLAGS} # ${GOFLAGS}
-a # -a
-tags osusergo,netgo # -tags osusergo,netgo
-ldflags '-w -extldflags \"-static -Wl,-unresolved-symbols=ignore-all\"' # -ldflags '-w -extldflags \"-static -Wl,-unresolved-symbols=ignore-all\"'
) #)
else(BUILD_STATIC) else(BUILD_STATIC)
set(GOFLAGS #set(GOFLAGS
${GOFLAGS} # ${GOFLAGS}
-a # -a
-ldflags '-w -extldflags \"-Wl,-unresolved-symbols=ignore-all\"' # -ldflags '-w -extldflags \"-Wl,-unresolved-symbols=ignore-all\"'
) #)
endif(BUILD_STATIC) endif(BUILD_STATIC)
if(BUILD_ARM_V5) if(BUILD_ARM_V5)
@ -225,7 +225,7 @@ if(NOT PACKAGE_STATIC)
CMAKE_SYSTEM_PROCESSOR MATCHES "X64" CMAKE_SYSTEM_PROCESSOR MATCHES "X64"
) )
message("++ Adding flags for processor ${CMAKE_SYSTEM_PROCESSOR}") message("++ Adding flags for processor ${CMAKE_SYSTEM_PROCESSOR}")
add_compile_options(-maes -mrdrnd -mpclmul -msse -msse2) add_compile_options(-maes -mrdrnd -mpclmul)
endif() endif()
if ( if (
@ -248,56 +248,56 @@ if(NOT PACKAGE_STATIC)
add_subdirectory(core) add_subdirectory(core)
add_subdirectory(controller) add_subdirectory(controller)
add_subdirectory(osdep) add_subdirectory(osdep)
add_subdirectory(serviceiocore) #add_subdirectory(serviceiocore)
file(GLOB go_src #file(GLOB go_src
${CMAKE_SOURCE_DIR}/cmd/*.go # ${CMAKE_SOURCE_DIR}/cmd/*.go
${CMAKE_SOURCE_DIR}/cmd/cmd/*.go # ${CMAKE_SOURCE_DIR}/cmd/cmd/*.go
${CMAKE_SOURCE_DIR}/pkg/zerotier/*.go # ${CMAKE_SOURCE_DIR}/pkg/zerotier/*.go
) #)
file(GLOB go_zt_service_tests_cmd_src #file(GLOB go_zt_service_tests_cmd_src
${CMAKE_SOURCE_DIR}/cmd/zt_service_tests/*.go # ${CMAKE_SOURCE_DIR}/cmd/zt_service_tests/*.go
) #)
if(WIN32) #if(WIN32)
set(GO_EXE_NAME "zerotier.exe") # set(GO_EXE_NAME "zerotier.exe")
set(GO_SERVICE_TESTS_EXE_NAME "zt_service_tests.exe") # set(GO_SERVICE_TESTS_EXE_NAME "zt_service_tests.exe")
set(GO_EXTRA_LIBRARIES "-lstdc++ -lwsock32 -lws2_32 -liphlpapi -lole32 -loleaut32 -lrpcrt4 -luuid") # set(GO_EXTRA_LIBRARIES "-lstdc++ -lwsock32 -lws2_32 -liphlpapi -lole32 -loleaut32 -lrpcrt4 -luuid")
else(WIN32) #else(WIN32)
set(GO_EXE_NAME "zerotier") # set(GO_EXE_NAME "zerotier")
set(GO_SERVICE_TESTS_EXE_NAME "zt_service_tests") # set(GO_SERVICE_TESTS_EXE_NAME "zt_service_tests")
if(CMAKE_SYSTEM_NAME MATCHES "Linux") # if(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(GO_EXTRA_LIBRARIES "-lstdc++") # set(GO_EXTRA_LIBRARIES "-lstdc++")
if(BUILD_ARM_V5) # if(BUILD_ARM_V5)
set(GO_EXTRA_LIBRARIES # set(GO_EXTRA_LIBRARIES
${GO_EXTRA_LIBRARIES} # ${GO_EXTRA_LIBRARIES}
"-latomic" # "-latomic"
) # )
endif(BUILD_ARM_V5) # endif(BUILD_ARM_V5)
else() # else()
set(GO_EXTRA_LIBRARIES "-lc++" "-lm") # set(GO_EXTRA_LIBRARIES "-lc++" "-lm")
endif() # endif()
endif(WIN32) #endif(WIN32)
add_custom_target( #add_custom_target(
zt_service_tests ALL # zt_service_tests ALL
BYPRODUCTS ${CMAKE_BINARY_DIR}/zt_service_tests # BYPRODUCTS ${CMAKE_BINARY_DIR}/zt_service_tests
SOURCES ${go_src} ${go_zt_service_tests_cmd_src} # SOURCES ${go_src} ${go_zt_service_tests_cmd_src}
COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} ${GOARM} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$<TARGET_FILE:zt_core> $<TARGET_FILE:zt_controller> $<TARGET_FILE:zt_service_io_core> $<TARGET_FILE:zt_osdep> ${GO_EXTRA_LIBRARIES}\" ${GO} build -mod=vendor ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_SERVICE_TESTS_EXE_NAME} ${go_zt_service_tests_cmd_src} # COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} ${GOARM} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$<TARGET_FILE:zt_core> $<TARGET_FILE:zt_controller> $<TARGET_FILE:zt_service_io_core> $<TARGET_FILE:zt_osdep> ${GO_EXTRA_LIBRARIES}\" ${GO} build -mod=vendor ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_SERVICE_TESTS_EXE_NAME} ${go_zt_service_tests_cmd_src}
COMMENT "Compiling zt_service_tests (Go/cgo self-tests)..." # COMMENT "Compiling zt_service_tests (Go/cgo self-tests)..."
) #)
add_dependencies(zt_service_tests zt_osdep zt_core zt_controller zt_service_io_core) #add_dependencies(zt_service_tests zt_osdep zt_core zt_controller zt_service_io_core)
add_custom_target( #add_custom_target(
zerotier ALL # zerotier ALL
BYPRODUCTS ${CMAKE_BINARY_DIR}/zerotier # BYPRODUCTS ${CMAKE_BINARY_DIR}/zerotier
SOURCES ${go_src} # SOURCES ${go_src}
COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} ${GOARM} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$<TARGET_FILE:zt_core> $<TARGET_FILE:zt_controller> $<TARGET_FILE:zt_service_io_core> $<TARGET_FILE:zt_osdep> ${GO_EXTRA_LIBRARIES}\" ${GO} build -mod=vendor ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_EXE_NAME} ${CMAKE_SOURCE_DIR}/cmd/zerotier/zerotier.go # COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} ${GOARM} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$<TARGET_FILE:zt_core> $<TARGET_FILE:zt_controller> $<TARGET_FILE:zt_service_io_core> $<TARGET_FILE:zt_osdep> ${GO_EXTRA_LIBRARIES}\" ${GO} build -mod=vendor ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_EXE_NAME} ${CMAKE_SOURCE_DIR}/cmd/zerotier/zerotier.go
COMMENT "Compiling Go Code..." # COMMENT "Compiling Go Code..."
) #)
add_dependencies(zerotier zt_osdep zt_core zt_controller zt_service_io_core) #add_dependencies(zerotier zt_osdep zt_core zt_controller zt_service_io_core)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/zerotier DESTINATION bin) #install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/zerotier DESTINATION bin)
else(NOT PACKAGE_STATIC) else(NOT PACKAGE_STATIC)

5
rust-zerotier-core/Cargo.lock generated Normal file
View file

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "rust-zerotier-core"
version = "0.1.0"

5
rust-zerotier-service/Cargo.lock generated Normal file
View file

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "rust-zerotier-service"
version = "0.1.0"

View file

@ -0,0 +1,9 @@
[package]
name = "rust-zerotier-service"
version = "0.1.0"
authors = ["Adam Ierymenko <adam.ierymenko@zerotier.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}