diff --git a/.gitignore b/.gitignore index 681b698a0..6d2d31ff6 100644 --- a/.gitignore +++ b/.gitignore @@ -103,6 +103,7 @@ lib/* lib64/* pocomsg.h */testsuite/bin/* +Util/testsuite/TestConfiguration/ # Eclipse generated files # ###################### @@ -117,10 +118,12 @@ cmake-build/ CodeGeneration RemotingNG XSD +stage/ +releases/ + # openssl binaries # #################### - !openssl/win32/bin/debug/*.dll !openssl/win32/bin/debug/*.lib !openssl/win32/bin/release/*.dll diff --git a/.travis.yml b/.travis.yml index b5ad63922..04e6c4e8f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ before_install: - if [ "$TRAVIS_OS_NAME" == "linux" ]; then tar -xzvf cmake-3.2.3-Linux-x86_64.tar.gz; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH=$PWD/cmake-3.2.3-Linux-x86_64/bin:$PATH; fi - sudo apt-get update -qq - - sudo apt-get install -qq -y unixodbc-dev libmysqlclient-dev libsqlite3-dev + - sudo apt-get install -qq -y unixodbc-dev libmysqlclient-dev libsqlite3-dev - sudo apt-get install -qq -y g++-arm-linux-gnueabi g++-arm-linux-gnueabihf clang-3.5 - sudo apt-get install -qq -y sloccount cppcheck @@ -20,7 +20,10 @@ services: - redis-server notifications: - slack: pocoproject:ItIUZvs8aJGyPdaKxIKMnS1t + slack: + rooms: + - pocoproject:ItIUZvs8aJGyPdaKxIKMnS1t + - kampbell:v4ARuptk0ETzwUsKDdV6Gspb#travis env: global: TEST_NAME="" @@ -99,6 +102,12 @@ matrix: # - sudo -E build/script/runtests.sh # QA jobs for code analytics and metrics + # build documentation and release + - env: TEST_NAME="documentation & release" + compiler: gcc + script: + - . env.sh && mkdoc all && mkrel all + # static code analysis with cppcheck (we can add --enable=all later) - env: TEST_NAME="cppcheck" script: cppcheck --force --quiet --inline-suppr -j2 -iData/SQLite/src/sqlite3.c . diff --git a/PocoDoc/cfg/mkdoc-poco.xml b/PocoDoc/cfg/mkdoc-poco.xml index c9c7df9d7..d41200b71 100644 --- a/PocoDoc/cfg/mkdoc-poco.xml +++ b/PocoDoc/cfg/mkdoc-poco.xml @@ -13,6 +13,7 @@ expat*.h, zconf.h, zlib.h, + XMLStreamParser.h @@ -32,6 +33,7 @@ ${Includes}, -I/usr/local/mysql/include, + -I/usr/include/mysql, -D_DEBUG, -E, -C, diff --git a/PocoDoc/cfg/mkdocumentation.xml b/PocoDoc/cfg/mkdocumentation.xml index 3fef56b23..6389a89ef 100644 --- a/PocoDoc/cfg/mkdocumentation.xml +++ b/PocoDoc/cfg/mkdocumentation.xml @@ -13,6 +13,7 @@ expat*.h, zconf.h, zlib.h, + XMLStreamParser.h ${PocoBuild}/Util/include/Poco/Util/Units.h @@ -33,6 +34,7 @@ ${Includes}, -I/usr/local/mysql/include, + -I/usr/include/mysql, -D_DEBUG, -E, -C, diff --git a/build/config/Cygwin b/build/config/Cygwin index fe14e1032..5cfbf70ba 100644 --- a/build/config/Cygwin +++ b/build/config/Cygwin @@ -20,7 +20,7 @@ CXX = g++ LINK = $(CXX) LIB = ar -cr RANLIB = ranlib -SHLIB = $(CXX) -shared -o $@ -Wl,--out-implib=$(dir $@)$(subst cyg,lib,$(notdir $@)).a -Wl,--export-all-symbols -Wl,--enable-auto-import +SHLIB = $(CXX) -shared -o $@ SHLIBLN = $(POCO_BASE)/build/script/shlibln STRIP = DEP = $(POCO_BASE)/build/script/makedepend.gcc @@ -46,9 +46,12 @@ IMPLIBLINKEXT = .dll.a CFLAGS = CFLAGS32 = CFLAGS64 = -CXXFLAGS = -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -Wa,-mbig-obj -CXXFLAGS32 = -CXXFLAGS64 = +CXXFLAGS = -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING +CXXFLAGS32 = -Wa,-mbig-obj +CXXFLAGS64 = -Wa,-mbig-obj +SHLIBFLAGS = -Wl,--out-implib=$(dir $@)$(subst cyg,lib,$(notdir $@)).a -Wl,--export-all-symbols -Wl,--enable-auto-import +SHLIBFLAGS32 = +SHLIBFLAGS64 = LINKFLAGS = LINKFLAGS32 = LINKFLAGS64 = diff --git a/build/script/runtests.sh b/build/script/runtests.sh index 3a93dd9fc..b251a2bde 100755 --- a/build/script/runtests.sh +++ b/build/script/runtests.sh @@ -60,6 +60,7 @@ if [ "$OSNAME" = "" ] ; then OSNAME=MinGW ;; esac fi + BINDIR="bin/$OSNAME/$OSARCH/" runs=0 @@ -82,12 +83,12 @@ do echo "" echo "" echo "****************************************" - echo "*** $comp" + echo "*** $OSNAME $OSARCH $comp" echo "****************************************" echo "" runs=`expr $runs + 1` - sh -c "cd $POCO_BUILD/$comp/testsuite/$BINDIR && $TESTRUNNER $TESTRUNNERARGS" + sh -c "cd $POCO_BUILD/$comp/testsuite/$BINDIR && LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH $TESTRUNNER $TESTRUNNERARGS" if [ $? -ne 0 ] ; then failures=`expr $failures + 1` failedTests="$failedTests $comp" diff --git a/release/script/mkdoc b/release/script/mkdoc index 40f5b0b11..218861354 100755 --- a/release/script/mkdoc +++ b/release/script/mkdoc @@ -1,4 +1,4 @@ -#! /bin/sh +#!/bin/bash # # $Id: //poco/1.4/release/script/mkdoc#2 $ # @@ -19,6 +19,18 @@ if [ "$POCO_BASE" = "" ] ; then exit 1 fi +osname=`uname -s | tr ' ' '_'` +osarch=`uname -m | tr ' ' '_'` + +if [ ${osname:0:6} = "CYGWIN" ] ; then + osname="Cygwin" +fi + +if [ $osname = "Darwin" ] ; then + archpath=`dirname stage/tools/PocoDoc/bin/Darwin/*/PocoDoc` + osarch=`basename $archpath` +fi + spec="" docConfig=$POCO_BASE/PocoDoc/cfg/mkdoc-poco.xml while [ "$1" != "" ] ; @@ -59,6 +71,14 @@ if [ "$version" = "" ] ; then fi release=$version$tag +if [ ! -f libversion ] ; then + echo "Error: No libversion file found." + exit 2 +fi +if [ "$libversion" = "" ] ; then + read libversion <$POCO_BASE/libversion +fi + # # Build release # @@ -74,16 +94,20 @@ cd $tools ./configure --no-tests --no-samples make -s -j8 +if [ $osname = "Cygwin" ] ; then + find $tools -type f -name "cyg*$libversion.dll" > $TMP/dlls + rebase -O -T $TMP/dlls + rm $TMP/dlls +fi + cd $POCO_BASE -osname=`uname -s | tr ' ' '_'` -osarch=`uname -m | tr ' ' '_'` - -if [ $osname = "Darwin" ] ; then - archpath=`dirname stage/tools/PocoDoc/bin/Darwin/*/PocoDoc` - osarch=`basename $archpath` +if [ $osname = "Cygwin" ] ; then +# Poco dlls must be on PATH for Cygwin + export PATH=$tools/lib/$osname/$osarch:$PATH fi + export PATH=$tools/PocoDoc/bin/$osname/$osarch:$PATH echo PATH=$PATH diff --git a/release/script/mkdocumentation b/release/script/mkdocumentation index cd5bb4725..5e143b556 100755 --- a/release/script/mkdocumentation +++ b/release/script/mkdocumentation @@ -123,6 +123,7 @@ echo "PocoDoc.output=$docPath" >>$build/PocoDoc.ini echo "PocoDoc.version=$docVersion" >> $build/PocoDoc.ini echo "Includes=$includes" >> $build/PocoDoc.ini +echo "PocoDoc --config=$docConfig --config=$build/PocoDoc.ini" PocoDoc --config=$docConfig --config=$build/PocoDoc.ini cd $dist diff --git a/release/script/mkrelease b/release/script/mkrelease index 3192c9b8f..b55b4d8d0 100755 --- a/release/script/mkrelease +++ b/release/script/mkrelease @@ -209,14 +209,63 @@ ifndef POCO_BASE $(warning WARNING: POCO_BASE is not defined. Assuming current directory.) export POCO_BASE=$(shell pwd) endif +#$(info POCO_BASE = $(POCO_BASE)) ifndef POCO_PREFIX export POCO_PREFIX=/usr/local endif +#$(info POCO_PREFIX=$(POCO_PREFIX)) ifndef POCO_BUILD export POCO_BUILD=$(POCO_BASE) endif +#$(info POCO_BUILD = $(POCO_BUILD)) + +# +# Determine OS +# +POCO_HOST_OSNAME = $(shell uname) +ifeq ($(findstring CYGWIN,$(POCO_HOST_OSNAME)),CYGWIN) +POCO_HOST_OSNAME = Cygwin +endif + +ifeq ($(findstring MINGW,$(POCO_HOST_OSNAME)),MINGW) +POCO_HOST_OSNAME = MinGW +endif +#$(info POCO_HOST_OSNAME= $(POCO_HOST_OSNAME)) + +POCO_HOST_OSARCH ?= $(subst /,-,$(shell uname -m | tr ' ' _)) +#$(info POCO_HOST_OSARCH= $(POCO_HOST_OSARCH)) + +# +# If POCO_CONFIG is not set, use the OS name as configuration name +# +ifndef POCO_CONFIG +POCO_CONFIG = $(POCO_HOST_OSNAME) +endif +#$(info POCO_CONFIG = $(POCO_CONFIG)) + +# +# Include System Specific Settings +# +include $(POCO_BASE)/build/config/$(POCO_CONFIG) + +# +# Determine operating system +# +ifndef POCO_TARGET_OSNAME +OSNAME := $(POCO_HOST_OSNAME) +else +OSNAME := $(POCO_TARGET_OSNAME) +endif +#$(info OSNAME = $(OSNAME)) + +ifndef POCO_TARGET_OSARCH +OSARCH := $(POCO_HOST_OSARCH) +else +OSARCH := $(POCO_TARGET_OSARCH) +endif +#$(info OSARCH = $(OSARCH)) .PHONY: poco all libexecs cppunit tests samples cleans clean distclean install @@ -249,8 +298,12 @@ install: libexecs find $(POCO_BUILD)/$$comp/bin -perm -700 -type f -exec cp -f {} $(INSTALLDIR)/bin \; ; \ fi ; \ done - find $(POCO_BUILD)/lib -name "libPoco*" -type f -exec cp -f {} $(INSTALLDIR)/lib \; - find $(POCO_BUILD)/lib -name "libPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/lib \; +ifeq ($(OSNAME), Cygwin) + find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "cygPoco*" -type f -exec cp -f {} $(INSTALLDIR)/bin \; + find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "cygPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/bin \; +endif + find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "libPoco*" -type f -exec cp -f {} $(INSTALLDIR)/lib \; + find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "libPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/lib \; ENDOFSCRIPT @@ -380,7 +433,7 @@ cat >${target}/build_vs100.cmd <<'ENDOFSCRIPT' @echo off if defined VS100COMNTOOLS ( call "%VS100COMNTOOLS%\vsvars32.bat") -buildwin 100 build shared both Win32 samples +buildwin 100 build shared both Win32 samples devenv ENDOFSCRIPT @@ -391,7 +444,7 @@ cat >${target}/build_vs110.cmd <<'ENDOFSCRIPT' @echo off if defined VS110COMNTOOLS ( call "%VS110COMNTOOLS%\vsvars32.bat") -buildwin 110 build shared both Win32 samples +buildwin 110 build shared both Win32 samples devenv ENDOFSCRIPT @@ -402,7 +455,17 @@ cat >${target}/build_vs120.cmd <<'ENDOFSCRIPT' @echo off if defined VS120COMNTOOLS ( call "%VS120COMNTOOLS%\vsvars32.bat") -buildwin 120 build shared both Win32 samples +buildwin 120 build shared both Win32 samples devenv +ENDOFSCRIPT + +# +# Create Visual Studio 14 build script +# +cat >${target}/build_vs140.cmd <<'ENDOFSCRIPT' +@echo off +if defined VS140COMNTOOLS ( +call "%VS140COMNTOOLS%\vsvars32.bat") +buildwin 140 build shared both Win32 samples devenv ENDOFSCRIPT @@ -455,10 +518,11 @@ ENDOFSCRIPT # Fix line endings # if [ "$lineEndConv" != "" ] ; then - $lineEndConv ${target}/build_vs71.cmd - $lineEndConv ${target}/build_vs80.cmd $lineEndConv ${target}/build_vs90.cmd $lineEndConv ${target}/build_vs100.cmd + $lineEndConv ${target}/build_vs110.cmd + $lineEndConv ${target}/build_vs120.cmd + $lineEndConv ${target}/build_vs140.cmd $lineEndConv ${target}/build_CE_vs90.cmd $lineEndConv ${target}/build_vcexpress2008.cmd $lineEndConv ${target}/build_vcexpress2010.cmd diff --git a/release/spec/all.release b/release/spec/all.release index b5a1a185b..1bbb594aa 100644 --- a/release/spec/all.release +++ b/release/spec/all.release @@ -1,10 +1,12 @@ Crypto NetSSL_OpenSSL +NetSSL_Win Data Data/SQLite Data/ODBC Data/MySQL MongoDB +Redis Zip PageCompiler PageCompiler/File2Page diff --git a/release/spec/world.release b/release/spec/world.release index 988cf0869..6a2db15bb 100644 --- a/release/spec/world.release +++ b/release/spec/world.release @@ -1,10 +1,12 @@ Crypto NetSSL_OpenSSL +NetSSL_Win Data Data/SQLite Data/ODBC Data/MySQL MongoDB +Redis Zip PageCompiler PageCompiler/File2Page