cmake_minimum_required (VERSION 2.6.4) include (ExternalProject) project(FlightGear-Meta) if (UNIX) set(BOOST_BOOTSTRAP "./bootstrap.sh" --prefix=${CMAKE_INSTALL_PREFIX}) else() set(BOOST_BOOTSTRAP "bootstrap.bat") endif() set(SG_DEPS OSG) set(FG_DEPS SimGear) 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} 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) endif() # of Apple set (OSG_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) # OpenSceneGraph configuration SET(OSG_SOURCE URL 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) # 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} -DOSG_USE_QT=0 -DJASPER_LIBRARY= -DSDL_LIBRARY:FILEPATH= -DCMAKE_OSX_ARCHITECTURES=x86_64 -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.2.0.zip) elseif(MSVC) set( OSG_MSVC "msvc" ) if (${MSVC_VERSION} EQUAL 1700) set( OSG_MSVC ${OSG_MSVC}110 ) elseif (${MSVC_VERSION} EQUAL 1600) set( OSG_MSVC ${OSG_MSVC}100 ) else (${MSVC_VERSION} EQUAL 1700) set( OSG_MSVC ${OSG_MSVC}90 ) endif (${MSVC_VERSION} EQUAL 1700) 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= ) # for compatability with MSVC directory layout set(OSG_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install/${OSG_MSVC}/OpenSceneGraph) list(APPEND OSG_DEPS WinDeps) else() # normal OSG endif() if (MSVC) # download 3rdparty dependencies 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 CONFIGURE_COMMAND "" BUILD_COMMAND "" 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}) endif(MSVC) # of Windows ExternalProject_Add(OSG DEPENDS ${OSG_DEPS} PREFIX ${CMAKE_BINARY_DIR} ${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 -DSG_SVN_CLIENT=1) set(FG_CMAKE_ARGS "") # FIXME install of OpenRTI is failing on Windows, files in PREFIX/share which # are ending up in C:/Program Files/OpenRTI if (NOT MSVC) ExternalProject_Add(OpenRTI 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} ) 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. SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/simgear BINARY_DIR sgbuild CMAKE_ARGS ${SG_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}) # on Windows, PLIB is in the 3rd-party dependancies zip if (NOT WIN32) 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 URL_HASH MD5=47a6fbf63668c1eed631024038b2ea90 CONFIGURE_COMMAND /configure --prefix=${CMAKE_INSTALL_PREFIX} ${PLIB_ARGS} BUILD_IN_SOURCE 1 ) list(APPEND FG_DEPS PLIB) endif() ExternalProject_Add(FlightGear PREFIX ${CMAKE_BINARY_DIR} DEPENDS ${FG_DEPS} 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} )