diff --git a/.gitignore b/.gitignore index b5a76ca..8b08baf 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ output fgBuild sgBuild image +build macflightgear fgdata src diff --git a/CMakeLists.txt b/CMakeLists.txt index a517139..e92534f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,11 @@ include (ExternalProject) project(FlightGear-Meta) +if(NOT CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install) + message(STATUS "Default install dir to ${CMAKE_INSTALL_PREFIX}") +endif() + if (UNIX) set(BOOST_BOOTSTRAP "./bootstrap.sh" --prefix=${CMAKE_INSTALL_PREFIX}) else() @@ -12,39 +17,39 @@ endif() set(SG_DEPS OSG) set(FG_DEPS SimGear) +set(SG_CMAKE_ARGS "") +set(FG_CMAKE_ARGS "") +set(FGRUN_CMAKE_ARGS "") if(APPLE) - set(BOOST_ARGS link=static stage --with-system) ExternalProject_Add(Boost - PREFIX ${CMAKE_BINARY_DIR} - SVN_REPOSITORY http://svn.boost.org/svn/boost/tags/release/Boost_1_52_0 - UPDATE_COMMAND ${BOOST_BOOTSTRAP} - CONFIGURE_COMMAND "" - BUILD_COMMAND ./bjam ${BOOST_ARGS} - BUILD_IN_SOURCE 1 - INSTALL_COMMAND ./b2 install ${BOOST_ARGS}) - - - ExternalProject_Add(libSvn - DOWNLOAD_COMMAND URL http://flightgear.simpits.org:8080/job/Mac-Subversion-libs/lastSuccessfulBuild/artifact/dist/*zip*/dist.zip PREFIX ${CMAKE_BINARY_DIR} + SVN_REPOSITORY http://svn.boost.org/svn/boost/tags/release/Boost_1_52_0 + UPDATE_COMMAND ${BOOST_BOOTSTRAP} CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND cp -r ${CMAKE_BINARY_DIR}/src/libSvn/include ${CMAKE_INSTALL_PREFIX} && cp -r ${CMAKE_BINARY_DIR}/src/libSvn/lib ${CMAKE_INSTALL_PREFIX} - ) - - list(APPEND SG_DEPS Boost libSvn) + BUILD_COMMAND ./bjam ${BOOST_ARGS} + BUILD_IN_SOURCE 1 + INSTALL_COMMAND ./b2 install ${BOOST_ARGS}) + + list(APPEND SG_DEPS Boost) endif() # of Apple -set (OSG_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +set(OSG_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +set(SG_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +set(FG_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +set(PLIB_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +set(RTI_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +set(FGRUN_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) # OpenSceneGraph configuration +set(OSG_SOURCE http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.0.zip) + if (APPLE) - SET(SDKROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk) + set(SDKROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk) # force disable Qt and Jasper, and ensure an SDKROOT is set, or # osgViewer system detection goes wrongh - SET(OSG_CMAKE_ARGS -DCMAKE_OSX_SYSROOT=${SDKROOT} + set(OSG_CMAKE_ARGS -DCMAKE_OSX_SYSROOT=${SDKROOT} -DOSG_USE_QT=0 -DJASPER_LIBRARY= -DSDL_LIBRARY:FILEPATH= @@ -52,77 +57,95 @@ if (APPLE) -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 ) # OSG with some patches applied for Mac -# SET(OSG_SOURCE GIT_REPOSITORY git://gitorious.org/+flightgear-developers/openscenegraph/mac-release-osg.git) - SET(OSG_SOURCE URL http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.1.4.zip) + # set(OSG_SOURCE GIT_REPOSITORY git://gitorious.org/+flightgear-developers/openscenegraph/mac-release-osg.git) + # set(OSG_SOURCE URL http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.0.zip) elseif(MSVC) - set( OSG_MSVC "msvc" ) + set(OSG_MSVC "msvc") if (${MSVC_VERSION} EQUAL 1700) - set( OSG_MSVC ${OSG_MSVC}110 ) + set(OSG_MSVC ${OSG_MSVC}110) elseif (${MSVC_VERSION} EQUAL 1600) - set( OSG_MSVC ${OSG_MSVC}100 ) + set(OSG_MSVC ${OSG_MSVC}100) else (${MSVC_VERSION} EQUAL 1700) - set( OSG_MSVC ${OSG_MSVC}90 ) + set(OSG_MSVC ${OSG_MSVC}90) endif (${MSVC_VERSION} EQUAL 1700) + if (CMAKE_CL_64) + set(OSG_MSVC ${OSG_MSVC}-64) + set(RDPARTY_DIR 3rdParty.x64) + list(APPEND FG_CMAKE_ARGS -DWITH_FGPANEL=OFF) + else () + set(RDPARTY_DIR 3rdParty) + endif (CMAKE_CL_64) - SET(OSG_CMAKE_ARGS - -DACTUAL_3RDPARTY_DIR:PATH=${CMAKE_BINARY_DIR}/3rdParty - -DBUILD_OSG_APPLICATIONS:BOOL=ON - -DCMAKE_INSTALL_PREFIX:PATH= - -DOSG_PLUGIN_SEARCH_INSTALL_DIR_FOR_PLUGINS:BOOL=OFF - -DFREETYPE_LIBRARY:FILEPATH=${CMAKE_BINARY_DIR}/3rdParty/lib/freetype243.lib - -DGDAL_INCLUDE_DIR:PATH= - -DGDAL_LIBRARY:FILEPATH= + SET(OSG_CMAKE_ARGS + -DACTUAL_3RDPARTY_DIR:PATH=${CMAKE_BINARY_DIR}/${RDPARTY_DIR} + -DBUILD_OSG_APPLICATIONS:BOOL=ON + -DOSG_PLUGIN_SEARCH_INSTALL_DIR_FOR_PLUGINS:BOOL=OFF + -DFREETYPE_LIBRARY:FILEPATH=${CMAKE_BINARY_DIR}/${RDPARTY_DIR}/lib/freetype243.lib + -DGDAL_INCLUDE_DIR:PATH= + -DGDAL_LIBRARY:FILEPATH= ) - - # for compatability with MSVC directory layout - set(OSG_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install/${OSG_MSVC}/OpenSceneGraph) - SET(OSG_SOURCE URL http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.1.4.zip) - + + # for compatability with MSVC directory layout + set(OSG_INSTALL_PREFIX ${OSG_INSTALL_PREFIX}/${OSG_MSVC}/OpenSceneGraph) + set(FGRUN_INSTALL_PREFIX ${FGRUN_INSTALL_PREFIX}/${OSG_MSVC}/FGRun) + set(FG_INSTALL_PREFIX ${FG_INSTALL_PREFIX}/${OSG_MSVC}/FlightGear) + set(SG_INSTALL_PREFIX ${SG_INSTALL_PREFIX}/${OSG_MSVC}/SimGear) list(APPEND OSG_DEPS WinDeps) else() # normal OSG - SET(OSG_SOURCE URL http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.1.4.zip) endif() if (MSVC) -# download 3rdparty dependeancies zip, including boost - ExternalProject_Add(WinDeps - DOWNLOAD_COMMAND URL http://files.goneabitbursar.com/fg/fgfs-win32-VS100-3rdParty+OSG-20120411.zip -# extract to current root - SOURCE_DIR ${CMAKE_BINARY_DIR}/winDeps - BINARY_DIR ${CMAKE_BINARY_DIR} - CONFIGURE_COMMAND "" - BUILD_COMMAND ${CMAKE_SOURCE_DIR}/installWinDeps.bat - INSTALL_COMMAND "" - ) - - ExternalProject_Add(Boost - DOWNLOAD_COMMAND URL http://flightgear.simpits.org:8080/job/Boost-Win/lastSuccessfulBuild/artifact/Boost/boost/*zip*/boost.zip - SOURCE_DIR ${CMAKE_BINARY_DIR}/Boost/boost + # download 3rdparty dependencies zip, including boost + ExternalProject_Add(WinDeps + SVN_REPOSITORY http://fgfs.goneabitbursar.com/fgwin3rdparty/trunk/msvc100/${RDPARTY_DIR} + # extract to current root + SOURCE_DIR ${CMAKE_BINARY_DIR}/winDeps/${RDPARTY_DIR} + BINARY_DIR ${CMAKE_BINARY_DIR} + UPDATE_COMMAND "" CONFIGURE_COMMAND "" - BUILD_COMMAND "" + BUILD_COMMAND ${CMAKE_SOURCE_DIR}/installWinDeps.bat INSTALL_COMMAND "" ) - - list(APPEND SG_DEPS Boost) - - list(APPEND SG_CMAKE_ARGS -DBOOST_ROOT=${CMAKE_BINARY_DIR}) - list(APPEND FG_CMAKE_ARGS -DBOOST_ROOT=${CMAKE_BINARY_DIR}) + + set(BOOST_ARGS link=static stage --with-system) + set(Boost_Version 1.54.0) + string(REPLACE "." "_" Boost_Version_Underscore ${Boost_Version}) + ExternalProject_Add(Boost + PREFIX ${CMAKE_BINARY_DIR} + URL http://downloads.sourceforge.net/project/boost/boost/${Boost_Version}/boost_${Boost_Version_Underscore}.zip + URL_MD5 78a35834c45220a6164310e280abe675 + UPDATE_COMMAND "" + CONFIGURE_COMMAND ${BOOST_BOOTSTRAP} + BUILD_COMMAND bjam --with-program_options ${BOOST_ARGS} + BUILD_IN_SOURCE 1 + INSTALL_COMMAND "" + ) + + list(APPEND SG_DEPS Boost) + list(APPEND SG_CMAKE_ARGS -DBOOST_ROOT=${CMAKE_BINARY_DIR}/src/Boost) + list(APPEND FG_CMAKE_ARGS -DBOOST_ROOT=${CMAKE_BINARY_DIR}/src/Boost) + list(APPEND FGRUN_CMAKE_ARGS -DBOOST_ROOT=${CMAKE_BINARY_DIR}/src/Boost) endif(MSVC) # of Windows ExternalProject_Add(OSG - DEPENDS ${OSG_DEPS} + DEPENDS ${OSG_DEPS} PREFIX ${CMAKE_BINARY_DIR} - ${OSG_SOURCE} + URL ${OSG_SOURCE} + URL_HASH MD5=4980f8692712a24d4c99f363f80c6814 BINARY_DIR osgbuild CMAKE_ARGS ${OSG_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${OSG_INSTALL_PREFIX} -# force Release build of OpenSceneGraph -# BUILD_COMMAND "cmake --build . --config Release" ) -set(SG_CMAKE_ARGS -DENABLE_PACKAGE=1) -set(FG_CMAKE_ARGS "") +# Because OSG install the libraries in lib64/ instead of lib/ +if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + ExternalProject_Add_Step(OSG after_install + COMMAND ${CMAKE_COMMAND} -E copy_directory ${OSG_INSTALL_PREFIX}/lib64 ${OSG_INSTALL_PREFIX}/lib + COMMAND ${CMAKE_COMMAND} -E remove_directory ${OSG_INSTALL_PREFIX}/lib64 + DEPENDEES install + ) +endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") # FIXME install of OpenRTI is failing on Windows, files in PREFIX/share which # are ending up in C:/Program Files/OpenRTI @@ -131,43 +154,80 @@ if (NOT MSVC) PREFIX ${CMAKE_BINARY_DIR} DOWNLOAD_COMMAND GIT_REPOSITORY git://gitorious.org/openrti/openrti.git BINARY_DIR rtibuild - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${RTI_INSTALL_PREFIX} ) - list(APPEND SG_DEPS OpenRTI) - list(APPEND SG_CMAKE_ARGS -DENABLE_RTI=1) - list(APPEND FG_CMAKE_ARGS -DENABLE_RTI=1) + list(APPEND SG_DEPS OpenRTI) + list(APPEND SG_CMAKE_ARGS -DENABLE_RTI=1) + list(APPEND FG_CMAKE_ARGS -DENABLE_RTI=1) endif() ExternalProject_Add(SimGear PREFIX ${CMAKE_BINARY_DIR} DEPENDS ${SG_DEPS} - DOWNLOAD_COMMAND "" # no need to download - UPDATE_COMMAND "" # or update. + DOWNLOAD_COMMAND "" # no need to download + UPDATE_COMMAND "" # or update. SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/simgear BINARY_DIR sgbuild - CMAKE_ARGS ${SG_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}) + CMAKE_ARGS ${SG_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${SG_INSTALL_PREFIX} -DCMAKE_PREFIX_PATH=${OSG_INSTALL_PREFIX} +) -# on Windows, PLIB is in the 3rd-party dependancies zip +# because we download SimGear externally (via Git submodules), +# the change-detection doesn't work. Ensure we always change +# for changes +ExternalProject_Add_Step(SimGear forcebuild + ALWAYS 1 + COMMAND ${CMAKE_COMMAND} -E echo foo + DEPENDERS build + ) + +# on Windows, PLIB is in the 3rd-party dependencies zip if (NOT WIN32) - SET(PLIB_ARGS --disable-pw --disable-sl --disable-psl --disable-ssg --disable-ssgaux) + set(PLIB_ARGS --disable-pw --disable-sl --disable-psl --disable-ssg --disable-ssgaux) - ExternalProject_Add(PLIB - PREFIX ${CMAKE_BINARY_DIR} - URL http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz - CONFIGURE_COMMAND /configure --prefix=${CMAKE_INSTALL_PREFIX} ${PLIB_ARGS} - BUILD_IN_SOURCE 1 - ) + ExternalProject_Add(PLIB + PREFIX ${CMAKE_BINARY_DIR} + URL http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz + URL_HASH MD5=47a6fbf63668c1eed631024038b2ea90 + CONFIGURE_COMMAND /configure --prefix=${PLIB_INSTALL_PREFIX} ${PLIB_ARGS} + BUILD_IN_SOURCE 1 + ) list(APPEND FG_DEPS PLIB) endif() +# Only compile FGRun for Windows +if (MSVC) + list(APPEND FGRUN_CMAKE_ARGS -DMSVC_3RDPARTY_ROOT:PATH=${CMAKE_BINARY_DIR}) + list(APPEND FGRUN_CMAKE_ARGS -DFLTK_FLUID_EXECUTABLE:FILEPATH=${CMAKE_BINARY_DIR}/${RDPARTY_DIR}/bin/fluid.exe) + list(APPEND FGRUN_CMAKE_ARGS -DGETTEXT_MSGFMT_EXECUTABLE:FILEPATH==${CMAKE_BINARY_DIR}/${RDPARTY_DIR}/bin/msgfmt.exe) + list(APPEND FGRUN_CMAKE_ARGS -DGETTEXT_MSGMERGE_EXECUTABLE:FILEPATH=${CMAKE_BINARY_DIR}/${RDPARTY_DIR}/bin/msgmerge.exe) + ExternalProject_Add(FGRun + PREFIX ${CMAKE_BINARY_DIR} + DEPENDS ${FG_DEPS} + DOWNLOAD_COMMAND "" # no need to download + UPDATE_COMMAND "" # or update. + SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/fgrun + BINARY_DIR fgrunbuild + CMAKE_ARGS ${FGRUN_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${FGRUN_INSTALL_PREFIX} -DCMAKE_PREFIX_PATH=${OSG_INSTALL_PREFIX} -DADDITIONAL_LIBRARY_PATHS=${SG_INSTALL_PREFIX} + ) +endif() + ExternalProject_Add(FlightGear PREFIX ${CMAKE_BINARY_DIR} DEPENDS ${FG_DEPS} - DOWNLOAD_COMMAND "" # no need to download - UPDATE_COMMAND "" # or update. + DOWNLOAD_COMMAND "" # no need to download + UPDATE_COMMAND "" # or update. SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/flightgear BINARY_DIR fgbuild - CMAKE_ARGS ${FG_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - ) + CMAKE_ARGS ${FG_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${FG_INSTALL_PREFIX} -DCMAKE_PREFIX_PATH=${OSG_INSTALL_PREFIX} -DADDITIONAL_LIBRARY_PATHS=${SG_INSTALL_PREFIX} +) + +# because we download FlightGear externally (via Git submodules), +# the change-detection doesn't work. Ensure we always change +# for changes +ExternalProject_Add_Step(FlightGear forcebuild + ALWAYS 1 + COMMAND ${CMAKE_COMMAND} -E echo foo + DEPENDERS build + ) diff --git a/download_and_compile.sh b/download_and_compile.sh index 469554c..ab14fe2 100755 --- a/download_and_compile.sh +++ b/download_and_compile.sh @@ -17,7 +17,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -VERSION="1.9-12" +VERSION="1.9-13" +#compatibility with UBUNTU 13.10 - libhal no longer in ubuntu 13.10 +#symbolic link error when using data directories in higher directories +#fixed array index on FGDATA version picker +#fixed fgdata directory reference when using parent or grandparent directories to store master copies. +#fixed rebuild command #COMPILE GIT FGFS @@ -49,6 +54,23 @@ function write_log_and_exec(){ write_log "$1 $2" $1 } +function write_log_and_exec_subprocess(){ + write_log "$1 $2" + if [[ "$3" = "noerror" ]] + then + $1 2>/dev/null || true + else + $1 + fi +} +function git_check_branch_or_tag(){ + if [[ "$1" != "" ]] + then + branch="$(git branch |sed "s/* //" |grep $1)" + tag="$(git tag |sed "s/* //" |grep $1)" + echo $branch$tag + fi +} function SET_WINDOW_TITLE(){ echo -ne "\033]0;Build Flightgear: - ${CBD} - $1\007" } @@ -333,9 +355,9 @@ FGSG_MAP=( [next]="next HEAD" \ [2.12.0]="release/2.12.0 HEAD" \ [2.10.0]="release/2.10.0 HEAD " \ [2.8.0]="release/2.8.0 version/2.8.0-final" ) -FGDATA_MAP=([next]="next HEAD 2.99.9" \ - [master]="master HEAD 2.12.1" \ - [master]="master HEAD 2.12.0" \ +FGDATA_MAP=([next]="master HEAD 2.99.9" \ + [master]="master HEAD 2.99.9" \ + [2.12.1]="release/2.12.0 HEAD 2.12.0" \ [2.12.0]="release/2.12.0 HEAD 2.12.0" \ [2.10.0]="release/2.10.0 HEAD 2.10.0" \ [2.8.0]="release/2.8.0 HEAD 2.8.0" ) @@ -354,9 +376,9 @@ FGSG_BRANCH=${MAP_ITEM[0]} FGSG_REVISION=${MAP_ITEM[1]} MAP_ITEM=( ${FGDATA_MAP[${FG_SG_VERSION}]} ) -FGDATA_BRANCH=${MAP_ITEM[1]} -FGDATA_REVISION=${MAP_ITEM[2]} -FGDATA_VERSION=${MAP_ITEM[3]} +FGDATA_BRANCH=${MAP_ITEM[0]} +FGDATA_REVISION=${MAP_ITEM[1]} +FGDATA_VERSION=${MAP_ITEM[2]} MAP_ITEM=( ${OPENRTI_MAP[${FG_SG_VERSION}]} ) OPENRTI_BRANCH=${MAP_ITEM[0]} @@ -499,10 +521,14 @@ then fi # default is hardy -DISTRO_PACKAGES="libopenal-dev libalut-dev libalut0 cvs subversion cmake make build-essential automake zlib1g-dev zlib1g libwxgtk2.8-0 libwxgtk2.8-dev fluid gawk gettext libxi-dev libxi6 libxmu-dev libxmu6 libboost-dev libasound2-dev libasound2 libpng12-dev libpng12-0 libjasper1 libjasper-dev libopenexr-dev libboost-serialization-dev git-core libhal-dev libqt4-dev scons python-tk python-imaging-tk libsvn-dev libglew1.5-dev libxft2 libxft-dev libxinerama1 libxinerama-dev" +DISTRO_PACKAGES="libopenal-dev libalut-dev libalut0 cvs subversion cmake make build-essential automake zlib1g-dev zlib1g libwxgtk2.8-0 libwxgtk2.8-dev fluid gawk gettext libxi-dev libxi6 libxmu-dev libxmu6 libboost-dev libasound2-dev libasound2 libpng12-dev libpng12-0 libjasper1 libjasper-dev libopenexr-dev libboost-serialization-dev git-core libqt4-dev scons python-tk python-imaging-tk libsvn-dev libglew1.5-dev libxft2 libxft-dev libxinerama1 libxinerama-dev" UBUNTU_PACKAGES="freeglut3-dev libjpeg62-dev libjpeg62 libapr1-dev libfltk1.3-dev libfltk1.3" +if [[ ( "$DISTRIB_ID" = "Ubuntu" || "$DISTRIB_ID" = "LinuxMint" ) && "$DISTRIB_RELEASE" < "13.10" ]] +then + UBUNTU_PACKAGES="$UBUNTU_PACKAGES libhal-dev" +fi DEBIAN_PACKAGES_STABLE="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.1-dev libfltk1.1" DEBIAN_PACKAGES_TESTING="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.3-dev libfltk1.3" DEBIAN_PACKAGES_UNSTABLE="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.3-dev libfltk1.3" @@ -709,8 +735,19 @@ then if [ "$DOWNLOAD" = "y" ] then echo -n "SVN FROM $OSG_SVN ... " >> $LOGFILE - svn co "$OSG_SVN" OpenSceneGraph - echo " OK" >> $LOGFILE + if [ -d "OpenSceneGraph/.svn" ] + then + echo -n "updating OpenSceneGraph svn" + cd OpenSceneGraph + svn update + cd - + else + echo -n "downloadING FROM $OSG_SVN ..." + svn co "$OSG_SVN" OpenSceneGraph + echo " OK" + fi + echo " OK" >> $LOGFILE + fi cd OpenSceneGraph @@ -1114,12 +1151,13 @@ fi SET_WINDOW_TITLE " FGDATA" if [[ -e ../fgdata_${FGDATA_VERSION} ]] then - FGDATA_DIR=../fgdata_${FGDATA_VERSION} + FGDATA_DIR=$(cd $(dirname ../fgdata_${FGDATA_VERSION}/fgdata); pwd)/$(basename ../fgdata_${FGDATA_VERSION}/fgdata) fi if [[ -e ../../fgdata_${FGDATA_VERSION} ]] then - FGDATA_DIR=../../fgdata_${FGDATA_VERSION} + FGDATA_DIR=$(cd $(dirname ../../fgdata_${FGDATA_VERSION}/fgdata); pwd)/$(basename ../../fgdata_${FGDATA_VERSION}/fgdata) fi + if [[ ! -e $INSTALL_DIR_FGFS/fgdata && -e ${FGDATA_DIR} ]] then ln -s ${FGDATA_DIR} $INSTALL_DIR_FGFS/fgdata @@ -1129,7 +1167,7 @@ fi cd $INSTALL_DIR_FGFS echo -n "GIT DATA FROM $fgdata_git ... " |tee -a $LOGFILE - if [ -d "fgdata" ] + if [ -e "fgdata" ] then echo "fgdata exists already." else @@ -1144,19 +1182,30 @@ fi then # switch to stable branch # create local stable branch, ignore errors if it exists - git branch -f $FGSG_BRANCH origin/$FGSG_BRANCH 2> /dev/null || true + if [[ "$(git_check_branch_or_tag $FGSG_BRANCH)" = "" ]] + then + write_log_and_exec + "git branch -f $FGSG_BRANCH origin/$FGSG_BRANCH" + fi # switch to stable branch. No error is reported if we're already on the branch. - git checkout -f $FGSG_BRANCH + write_log_and_exec "git checkout -f $FGSG_BRANCH" + # get indicated stable version - git reset --hard $FGSG_BRANCH + + write_log_and_exec "git reset --hard $FGSG_BRANCH" else # switch to unstable branch # create local unstable branch, ignore errors if it exists - git branch -f $FGDATA_BRANCH origin/$FGDATA_BRANCH 2> /dev/null || true + $(git_check_branch_or_tag) + if [[ "$(git_check_branch_or_tag $FGDATA_BRANCH)" = "" ]] + then + write_log_and_exec + "git branch -f $FGDATA_BRANCH origin/$FGDATA_BRANCH" + fi # switch to unstable branch. No error is reported if we're already on the branch. - git checkout -f $FGDATA_BRANCH + write_log_and_exec "git checkout -f $FGDATA_BRANCH" # pull latest version from the unstable branch - git pull + write_log_and_exec "git pull" fi cd .. @@ -1729,7 +1778,7 @@ then else echo "Usage: $0 -h" echo "for help" - echo "$rebuild" >rebuild + echo "$rebuild_command" >rebuild chmod +x rebuild fi diff --git a/hudson_win_build32.bat b/hudson_win_build32.bat index 0b6b9a0..5749199 100644 --- a/hudson_win_build32.bat +++ b/hudson_win_build32.bat @@ -1,9 +1,11 @@ - IF NOT DEFINED WORKSPACE SET WORKSPACE=%~dp0 -ECHO #define SIMGEAR_VERSION "2.9.0" > %WORKSPACE%\simgear\simgear\version.h +SET /P SIMGEAR_VERSION=<%WORKSPACE%\simgear\version +ECHO #define SIMGEAR_VERSION "%SIMGEAR_VERSION%" > %WORKSPACE%\simgear\simgear\version.h + rem set PATH=%PATH%;D:\Program Files (x86)\CMake 2.8\bin rem call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat" + md build-sg md build-fg md build-fgrun diff --git a/hudson_win_build64.bat b/hudson_win_build64.bat index b3f604a..0e1a2a5 100644 --- a/hudson_win_build64.bat +++ b/hudson_win_build64.bat @@ -1,9 +1,13 @@ - IF NOT DEFINED WORKSPACE SET WORKSPACE=%~dp0 -ECHO #define SIMGEAR_VERSION "2.9.0" > %WORKSPACE%\simgear\simgear\version.h + +SET /P SIMGEAR_VERSION=<%WORKSPACE%\simgear\version +ECHO #define SIMGEAR_VERSION "%SIMGEAR_VERSION%" > %WORKSPACE%\simgear\simgear\version.h + +rem ECHO #define SIMGEAR_VERSION "2.9.0" > %WORKSPACE%\simgear\simgear\version.h rem set PATH=%PATH%;D:\Program Files (x86)\CMake 2.8\bin rem call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64 + md build-sg64 md build-fg64 md build-fgrun64 diff --git a/hudson_win_package_release.bat b/hudson_win_package_release.bat index cf926cb..30d5f91 100644 --- a/hudson_win_package_release.bat +++ b/hudson_win_package_release.bat @@ -32,7 +32,7 @@ ECHO #define OTSoNumber "%OT_SO_NUMBER%" >> InstallConfig.iss set DATA_FILE=FlightGear-%FLIGHTGEAR_VERSION%-data REM extract the data files -7z e -aoa %DATA_FILE%.tar.bz && 7z x -aoa %DATA_FILE%.tar +7z e -aoa %DATA_FILE%.tar.bz2 && 7z x -aoa %DATA_FILE%.tar REM run Inno-setup! REM use iscc instead of compil32 for better error reporting diff --git a/installWinDeps.bat b/installWinDeps.bat index 6926b48..73972a6 100644 --- a/installWinDeps.bat +++ b/installWinDeps.bat @@ -1,12 +1,19 @@ - - REM ExternalProject can't cleanly extract a zip into an existing directory REM Instead we extract to a subdir, and then move the directories we want REM using this bat file. echo %CD% - -md 3rdParty -xcopy /Y /E winDeps/3rdParty 3rdParty - -echo "Done copying Windows deps" +IF EXIST winDeps/3rdParty ( + md 3rdParty + xcopy /Y /E winDeps/3rdParty 3rdParty + echo "Done copying Windows deps" +) ELSE ( + IF EXIST winDeps/3rdParty.x64 ( + md 3rdParty.x64 + xcopy /Y /E winDeps/3rdParty.x64 3rdParty.x64 + echo "Done copying Windows deps" + ) ELSE ( + echo "Error: Windows deps not found" + exit -1 + ) +)