0
0
mirror of https://github.com/monero-project/kovri synced 2025-10-06 00:32:51 +02:00

Merge pull request #989

034e947d Build: use release/debug defs, add debug target (anonimal)
This commit is contained in:
anonimal
2018-07-25 23:26:46 +00:00
2 changed files with 27 additions and 26 deletions

View File

@@ -80,7 +80,6 @@ if (NOT WITH_PYTHON AND NOT WITH_SHARED_DEPS)
endif()
# Default build is Debug
# TODO(anonimal): currently, there are no other release-specific flags (fix this when we release)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif()

View File

@@ -69,10 +69,6 @@ cmake = cmake $(cmake-gen) $(cmake_cotire)
cmake-debug = $(cmake) -D CMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake-release = $(cmake) -D CMAKE_BUILD_TYPE=Release
# TODO(unassigned): cmake-release when we're out of alpha
cmake-kovri = $(cmake-debug)
cmake-kovri-util = -D WITH_KOVRI_UTIL=ON
# Current off-by-default Kovri build options
cmake-optimize = -D WITH_OPTIMIZE=ON
cmake-hardening = -D WITH_HARDENING=ON
@@ -84,6 +80,7 @@ cmake-shared-deps= -D WITH_SHARED_DEPS=ON
cmake-doxygen = -D WITH_DOXYGEN=ON
cmake-coverage = -D WITH_COVERAGE=ON
cmake-python = -D WITH_PYTHON=ON
cmake-kovri-util = -D WITH_KOVRI_UTIL=ON
# Android-specific
cmake-android = -D ANDROID=1 -D KOVRI_DATA_PATH="/data/local/tmp/.kovri"
@@ -128,14 +125,14 @@ deps:
$(call MAKE_CRYPTOPP, $(MAKE) $(cryptopp-native) static)
shared-deps:
$(eval cmake-kovri += $(cmake-shared-deps))
$(eval cmake-debug += $(cmake-shared-deps))
$(call MAKE_CRYPTOPP, $(MAKE) shared)
release-deps:
$(call MAKE_CRYPTOPP, $(MAKE) static)
release-static-deps:
$(eval cmake-kovri += $(cmake-static-deps))
$(eval cmake-release += $(cmake-static-deps))
$(call MAKE_CRYPTOPP, $(MAKE) static)
#-----------------------------------#
@@ -143,20 +140,24 @@ release-static-deps:
#-----------------------------------#
dynamic: shared-deps
$(eval cmake-kovri += $(cmake-native))
$(eval cmake-kovri += $(cmake-debug) $(cmake-native))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
static: deps
$(eval cmake-kovri += $(cmake-native) $(cmake-static))
$(eval cmake-kovri += $(cmake-debug) $(cmake-native) $(cmake-static))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
debug: deps
$(eval cmake-kovri += $(cmake-debug) $(cmake-native) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
#-----------------------------------#
# For dynamic distribution release #
# For dynamic distribution release #
#-----------------------------------#
release: release-deps
# TODO(unassigned): cmake release flags + optimizations/hardening when we're out of alpha
$(eval cmake-kovri += $(cmake-kovri-util))
# TODO(unassigned): optimizations/hardening when we're out of alpha
$(eval cmake-kovri += $(cmake-release) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
#--------------------------------------------------------------#
@@ -164,12 +165,12 @@ release: release-deps
#--------------------------------------------------------------#
release-static: release-static-deps
# TODO(unassigned): cmake release flags + optimizations/hardening when we're out of alpha
$(eval cmake-kovri += $(cmake-static) $(cmake-kovri-util))
# TODO(unassigned): optimizations/hardening when we're out of alpha
$(eval cmake-kovri += $(cmake-release) $(cmake-static) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
release-static-android: release-static-deps
$(eval cmake-kovri += $(cmake-static) $(cmake-android) $(cmake-kovri-util))
$(eval cmake-kovri += $(cmake-release) $(cmake-static) $(cmake-android) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
#-----------------#
@@ -178,48 +179,48 @@ release-static-android: release-static-deps
# Utility binary
util: deps
$(eval cmake-kovri += $(cmake-kovri-util))
$(eval $(cmake-kovri) += $(cmake-debug) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# For API/testnet development
python: shared-deps
$(eval cmake-kovri += $(cmake-python))
$(eval cmake-kovri += $(cmake-debug) $(cmake-python))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce optimized, hardened binary
all-options: deps
$(eval cmake-kovri += $(cmake-optimize) $(cmake-hardening) $(cmake-kovri-util))
$(eval cmake-kovri += $(cmake-release) $(cmake-optimize) $(cmake-hardening) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce optimized, hardened binary. Note: we need (or very much should have) optimizations with hardening
optimized-hardened: deps
$(eval cmake-kovri += $(cmake-optimize) $(cmake-hardening))
$(eval cmake-kovri += $(cmake-release) $(cmake-optimize) $(cmake-hardening))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce all unit-tests with optimized hardening
optimized-hardened-tests: deps
$(eval cmake-kovri += $(cmake-optimize) $(cmake-hardening) $(cmake-tests))
$(eval cmake-kovri += $(cmake-release) $(cmake-optimize) $(cmake-hardening) $(cmake-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce build with coverage. Note: leaving out hardening because of need for optimizations
coverage: deps
$(eval cmake-kovri += $(cmake-coverage) $(cmake-kovri-util))
$(eval cmake-kovri += $(cmake-debug) $(cmake-coverage) $(cmake-kovri-util))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce unit-tests with coverage
coverage-tests: deps
$(eval cmake-kovri += $(cmake-coverage) $(cmake-tests))
$(eval cmake-kovri += $(cmake-debug) $(cmake-coverage) $(cmake-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce vanilla unit-tests
tests: deps
$(eval cmake-kovri += $(cmake-tests))
$(eval cmake-kovri += $(cmake-debug) $(cmake-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce vanilla fuzzer-tests
fuzz-tests: deps
$(call CMAKE_FUZZER) && $(MAKE)
$(eval cmake-kovri += $(cmake-fuzz-tests))
$(eval cmake-kovri += $(cmake-debug) $(cmake-fuzz-tests))
$(call CMAKE,$(build),$(cmake-kovri)) && $(MAKE) -C $(build) $(cmake_target)
# Produce Doxygen documentation
@@ -229,7 +230,8 @@ doxygen:
# Produce available CMake build options
help:
$(call CMAKE,$(build),$(cmake-kovri) -LH)
# TODO(unassigned): fix (we must actually change directory)
$(call CMAKE,$(build) -LH)
# Clean all build directories and Doxygen output
clean:
@@ -252,4 +254,4 @@ uninstall:
@_install="./pkg/installers/kovri-install.sh"; \
if [ -e $$_install ]; then $$_install -u; else echo "Unable to find $$_install"; exit 1; fi
.PHONY: all deps release-deps release-static-deps dynamic static release release-static release-static-android all-options optimized-hardened optimized-hardened-tests coverage coverage-tests tests doxygen help clean install uninstall
.PHONY: all deps release-deps release-static-deps dynamic static debug release release-static release-static-android all-options optimized-hardened optimized-hardened-tests coverage coverage-tests tests doxygen help clean install uninstall