mirror of
https://github.com/RetroShare/RetroShare.git
synced 2026-09-12 19:50:17 +05:00
fix(build): globally enable I2P SAMv3 support by default and link GUI to sam3
This commit is contained in:
parent
6e61ed2e77
commit
72cb4eabd2
@ -6,17 +6,6 @@ cmake_minimum_required(VERSION 3.5.0)
|
||||
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
|
||||
project(retroshare-monorepo)
|
||||
|
||||
# Force C++17 globally for all targets (including plugins)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(APPLE)
|
||||
# On macOS, allow undefined symbols in shared modules/libraries at link time
|
||||
# because they will be resolved at runtime by the host executable (retroshare-gui)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -undefined dynamic_lookup")
|
||||
endif()
|
||||
|
||||
# Global setting to allow executables to export symbols for plugin/module linking
|
||||
set(CMAKE_ENABLE_EXPORTS ON)
|
||||
|
||||
@ -25,6 +14,24 @@ option(RS_GUI "Build RetroShare GUI" ON)
|
||||
option(RS_SERVICE "Build RetroShare Service" ON)
|
||||
option(RS_FRIENDSERVER "Build RetroShare Friendserver" ON)
|
||||
option(RS_PLUGINS "Build RetroShare Plugins" OFF)
|
||||
option(RS_USE_I2P_SAM3 "Enable I2P SAMv3 support" ON)
|
||||
|
||||
if(RS_USE_I2P_SAM3)
|
||||
add_definitions(-DRS_USE_I2P_SAM3 -DRS_USE_I2P_SAM3_LIBSAM3)
|
||||
|
||||
set(SAM3_DEVEL_DIR "${CMAKE_SOURCE_DIR}/supportlibs/libsam3")
|
||||
if(EXISTS "${SAM3_DEVEL_DIR}")
|
||||
message(STATUS "libsam3 found at ${SAM3_DEVEL_DIR}, defining target sam3 globally")
|
||||
add_library(sam3 STATIC
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3/libsam3.c"
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3a/libsam3a.c"
|
||||
)
|
||||
target_include_directories(sam3 PUBLIC
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3"
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3a"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Global configurations for Windows builds
|
||||
if(WIN32)
|
||||
|
||||
10
Makefile
10
Makefile
@ -13,6 +13,7 @@ CACHE_RS_PLUGINS := $(call GET_CACHE_VAL,RS_PLUGINS)
|
||||
CACHE_RS_FORUM_DEEP_INDEX := $(call GET_CACHE_VAL,RS_FORUM_DEEP_INDEX)
|
||||
CACHE_RS_DEVELOPMENT_BUILD := $(call GET_CACHE_VAL,RS_DEVELOPMENT_BUILD)
|
||||
CACHE_CMAKE_BUILD_TYPE := $(call GET_CACHE_VAL,CMAKE_BUILD_TYPE)
|
||||
CACHE_RS_USE_I2P_SAM3 := $(call GET_CACHE_VAL,RS_USE_I2P_SAM3)
|
||||
|
||||
RS_RNPLIB ?= $(if $(CACHE_RS_RNPLIB),$(CACHE_RS_RNPLIB),ON)
|
||||
RS_JSON_API ?= $(if $(CACHE_RS_JSON_API),$(CACHE_RS_JSON_API),ON)
|
||||
@ -21,6 +22,7 @@ RS_PLUGINS ?= $(if $(CACHE_RS_PLUGINS),$(CACHE_RS_PLUGINS),OFF)
|
||||
RS_FORUM_DEEP_INDEX ?= $(if $(CACHE_RS_FORUM_DEEP_INDEX),$(CACHE_RS_FORUM_DEEP_INDEX),OFF)
|
||||
RS_DEVELOPMENT_BUILD ?= $(if $(CACHE_RS_DEVELOPMENT_BUILD),$(CACHE_RS_DEVELOPMENT_BUILD),OFF)
|
||||
CMAKE_BUILD_TYPE ?= $(if $(CACHE_CMAKE_BUILD_TYPE),$(CACHE_CMAKE_BUILD_TYPE),RelWithDebInfo)
|
||||
RS_USE_I2P_SAM3 ?= $(if $(CACHE_RS_USE_I2P_SAM3),$(CACHE_RS_USE_I2P_SAM3),ON)
|
||||
|
||||
# ==============================================================================
|
||||
# Options validation (stops immediately if any option is invalid)
|
||||
@ -41,6 +43,7 @@ $(eval $(call VALIDATE_OPTION,RS_WEBUI))
|
||||
$(eval $(call VALIDATE_OPTION,RS_PLUGINS))
|
||||
$(eval $(call VALIDATE_OPTION,RS_FORUM_DEEP_INDEX))
|
||||
$(eval $(call VALIDATE_OPTION,RS_DEVELOPMENT_BUILD))
|
||||
$(eval $(call VALIDATE_OPTION,RS_USE_I2P_SAM3))
|
||||
|
||||
# Specific validation for CMAKE_BUILD_TYPE (if not empty)
|
||||
ifneq ($(CMAKE_BUILD_TYPE),)
|
||||
@ -50,7 +53,7 @@ ifneq ($(CMAKE_BUILD_TYPE),)
|
||||
endif
|
||||
|
||||
# Unrecognized command line variable protection
|
||||
ALLOWED_VARS := RS_RNPLIB RS_JSON_API RS_WEBUI RS_PLUGINS RS_FORUM_DEEP_INDEX RS_DEVELOPMENT_BUILD CMAKE_BUILD_TYPE CMAKE_GEN CMAKE_FLAGS NPROC
|
||||
ALLOWED_VARS := RS_RNPLIB RS_JSON_API RS_WEBUI RS_PLUGINS RS_FORUM_DEEP_INDEX RS_DEVELOPMENT_BUILD CMAKE_BUILD_TYPE RS_USE_I2P_SAM3 CMAKE_GEN CMAKE_FLAGS NPROC
|
||||
|
||||
$(foreach var,$(.VARIABLES),\
|
||||
$(if $(filter command line,$(origin $(var))),\
|
||||
@ -95,7 +98,8 @@ RS_CMAKE_COMMON = \
|
||||
-DRS_RNPLIB=$(RS_RNPLIB) \
|
||||
-DRS_PLUGINS=$(RS_PLUGINS) \
|
||||
-DRS_FORUM_DEEP_INDEX=$(RS_FORUM_DEEP_INDEX) \
|
||||
-DRS_DEVELOPMENT_BUILD=$(RS_DEVELOPMENT_BUILD)
|
||||
-DRS_DEVELOPMENT_BUILD=$(RS_DEVELOPMENT_BUILD) \
|
||||
-DRS_USE_I2P_SAM3=$(RS_USE_I2P_SAM3)
|
||||
|
||||
.PHONY: all clean rnp libretroshare retroshare-service retroshare-friendserver retroshare-gui configure show-config help
|
||||
|
||||
@ -205,6 +209,7 @@ show-config:
|
||||
@echo " RS_PLUGINS = $(call GET_VAR_STATUS,RS_PLUGINS)"
|
||||
@echo " RS_FORUM_DEEP_INDEX = $(call GET_VAR_STATUS,RS_FORUM_DEEP_INDEX)"
|
||||
@echo " RS_DEVELOPMENT_BUILD = $(call GET_VAR_STATUS,RS_DEVELOPMENT_BUILD)"
|
||||
@echo " RS_USE_I2P_SAM3 = $(call GET_VAR_STATUS,RS_USE_I2P_SAM3)"
|
||||
@echo " NPROC = $(NPROC)"
|
||||
@echo " BUILD_DIR = $(BUILD_DIR)"
|
||||
@echo ' CMAKE_GEN = $(CMAKE_GEN)'
|
||||
@ -237,6 +242,7 @@ help:
|
||||
@echo " RS_PLUGINS Build RetroShare plugins (ON/OFF, default: OFF)"
|
||||
@echo " RS_FORUM_DEEP_INDEX Xapian/FTS5 forum full text search (ON/OFF, default: OFF)"
|
||||
@echo " RS_DEVELOPMENT_BUILD Disable optimisations for fast builds (ON/OFF, default: OFF)"
|
||||
@echo " RS_USE_I2P_SAM3 Enable I2P SAMv3 support (ON/OFF, default: ON)"
|
||||
@echo " CMAKE_BUILD_TYPE CMake build type (Debug/Release/RelWithDebInfo/MinSizeRel)"
|
||||
@echo " NPROC Number of build threads (default: detected CPUs)"
|
||||
@echo "=============================================================================="
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit efc741f1512ba88214057197fa12a9dd0ce44f1b
|
||||
Subproject commit b60973cc04a00c1cf5620c5b633b524405d55cb8
|
||||
@ -292,19 +292,8 @@ endif(RS_GUI_CMARK)
|
||||
|
||||
################################# LibSam v3 ####################################
|
||||
|
||||
set(SAM3_DEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/libsam3/")
|
||||
if(EXISTS "${SAM3_DEVEL_DIR}" )
|
||||
message( STATUS "libsam3 found at ${SAM3_DEVEL_DIR}, defining target sam3" )
|
||||
add_library(sam3 STATIC
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3/libsam3.c"
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3a/libsam3a.c"
|
||||
)
|
||||
target_include_directories(sam3 PUBLIC
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3"
|
||||
"${SAM3_DEVEL_DIR}/src/libsam3a"
|
||||
)
|
||||
else()
|
||||
message( WARNING "libsam3 not found!" )
|
||||
if(RS_USE_I2P_SAM3)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE sam3)
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
|
||||
Loading…
Reference in New Issue
Block a user