Added all-encompassing packaging script, improvements to CMake build script

This commit is contained in:
Joseph Henry
2018-08-22 10:49:21 -07:00
parent d8c64e4591
commit 5a82f43aac
4 changed files with 259 additions and 45 deletions

View File

@@ -1,44 +1,44 @@
#
# ZeroTier SDK - Network Virtualization Everywhere
# Copyright (C) 2011-2017 ZeroTier, Inc. https://www.zerotier.com/
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# --
#
# You can be released from the requirements of the license by purchasing
# a commercial license. Buying such a license is mandatory as soon as you
# develop commercial closed-source software that incorporates or links
# directly against ZeroTier software without disclosing the source code
# of your own application.
#
# NOTE: This file only exists as a convenience for cleaning. To build, use
# CMake. Instructions are given in README.md
# NOTE: This file only exists as a convenience for cleaning and building
# products for release. To build, use CMake. Instructions in README.md
.PHONY: clean
clean:
rm -rf bin build
rm -rf bin build products tmp
rm -f *.o *.s *.exp *.lib .depend* *.core core
rm -rf .depend
find . -type f \( -name '*.a' -o -name '*.o' -o -name '*.so' -o -name \
'*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete
'*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' -o -name '*.dylib' -o -name '*.class' \) -delete
# Build and package everything
# This command shall be run twice:
# (1) Generates projects
# <perform any required modifications>
# (2) Build products and package everything
.PHONY: dist
dist: patch
./packages/dist.sh
# Initialize submodules and apply patches
.PHONY: all
all: update patch
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release
cmake --build build
# Clean build paths
clean_win:
-"rd /S /Q bin"
-"rd /S /Q build"
# Remove any CMake-generated library-building projects
clean_packages:
rm -rf packages/xcode_ios
rm -rf packages/xcode_macos
.PHONY: update
update:
git submodule update --init --recursive
# Patch submodules
patch:
git -C ext/lwip apply ../lwip.patch
git -C ext/lwip-contrib apply ../lwip-contrib.patch
-git -C ext/lwip apply ../lwip.patch
-git -C ext/lwip-contrib apply ../lwip-contrib.patch