#----------------------------------------------------------------------------- # This is the Super-build descriptor for ParaViewWeb #----------------------------------------------------------------------------- cmake_minimum_required(VERSION 2.8) project(ParaViewWeb-SuperBuild) include(ExternalProject) #----------------------------------------------------------------------------- # Configuration setting #----------------------------------------------------------------------------- option( WEB_SERVICE "Build the minimum web component" ON) option( WEB_SAMPLES "Build additional web sample applications" ON) option( VIZ_NODE "Build ParaView based visualization component" ON) option( USE_OSMESA "Allow VIZ_NODE to work with no server X." OFF) option( BUILD_FLASH_RENDERER "Will generate packages needed for the flash renderer" OFF) #----------------------------------------------------------------------------- # Components URLs #----------------------------------------------------------------------------- set(PARAVIEW_URL "http://www.paraview.org/files/v3.14/ParaView-3.14.0-Source.tar.gz" ) set(ACTIVEMQ_CPP_VERSION "3.4.1" ) set(ACTIVEMQ_CPP_URL "http://www.apache.org/dist/activemq/activemq-cpp/source/activemq-cpp-library-${ACTIVEMQ_CPP_VERSION}-src.tar.gz" ) set(PARAVIEWWEB_GIT_URL "http://paraview.org/ParaViewWeb.git" ) set(APR_URL "http://www.apache.org/dist/apr/apr-1.4.5.tar.gz" ) set(APR_UTIL_URL "http://www.apache.org/dist/apr/apr-util-1.4.1.tar.gz" ) set(OSMESA_URL "ftp://ftp.freedesktop.org/pub/mesa/7.10.2/MesaLib-7.10.2.tar.gz" ) #----------------------------------------------------------------------------- # Download/Build/Install APR #----------------------------------------------------------------------------- if( VIZ_NODE ) ExternalProject_Add( APR URL ${APR_URL} URL_MD5 97262fe54dddaf583eaaee3497a426e1 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/apr/src BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/apr/src INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/apr/install UPDATE_COMMAND "" CONFIGURE_COMMAND /configure --prefix= ) endif( VIZ_NODE ) #----------------------------------------------------------------------------- # Download/Build/Install APR-Util #----------------------------------------------------------------------------- if( VIZ_NODE ) ExternalProject_Add( APR-UTIL URL ${APR_UTIL_URL} URL_MD5 666a5d56098a9debf998510e304c8095 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/apr-util/src BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/apr-util/src INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/apr-util/install UPDATE_COMMAND "" CONFIGURE_COMMAND /configure --prefix= --with-apr=${CMAKE_CURRENT_BINARY_DIR}/apr/install ) endif( VIZ_NODE ) #----------------------------------------------------------------------------- # Download/Build/Install OSMesa #----------------------------------------------------------------------------- set(ParaViewOpenGLConfig) if(USE_OSMESA) ExternalProject_Add( OSMesa URL ${OSMESA_URL} SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/OSMesa/src BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/OSMesa/src INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/OSMesa/install UPDATE_COMMAND "" CONFIGURE_COMMAND /configure --prefix= --with-driver=xlib --disable-gallium --disable-egl --disable-glw --enable-gl-osmesa ) set(ParaViewOpenGLConfig -DVTK_OPENGL_HAS_OSMESA:BOOL=ON -DOSMESA_INCLUDE_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/OSMesa/install/include/ -DOSMESA_LIBRARY:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/OSMesa/install/lib/libOSMesa${CMAKE_SHARED_LIBRARY_SUFFIX} -DVTK_USE_OFFSCREEN:BOOL=ON -DVTK_USE_X:BOOL=OFF -DOPENGL_INCLUDE_DIR:PATH= -DOPENGL_gl_LIBRARY:FILEPATH= -DOPENGL_glu_LIBRARY:FILEPATH= -DOPENGL_xmesa_INCLUDE_DIR:PATH=OPENGL_xmesa_INCLUDE_DIR-NOTFOUND ) endif(USE_OSMESA) #----------------------------------------------------------------------------- # Download/Build/Install ParaView #----------------------------------------------------------------------------- if( VIZ_NODE ) ExternalProject_Add( ParaView URL ${PARAVIEW_URL} URL_MD5 a260bd891fd75d0e276a581a3603edff SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/ParaView/src BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ParaView/build INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/ParaView/install DEPENDS ${ParaViewDependency} UPDATE_COMMAND "" CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Debug -DBUILD_SHARED_LIBS:BOOL=ON -DPARAVIEW_BUILD_QT_GUI:BOOL=OFF -DPARAVIEW_ENABLE_PYTHON:BOOL=ON -DPARAVIEW_ENABLE_PYTHON_FILTERS:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/ParaView/install -DPARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIReaderWriter:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_Prism:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_StreamingView:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_pvblot:BOOL=OFF ${ParaViewOpenGLConfig} ) endif( VIZ_NODE ) #----------------------------------------------------------------------------- # Download/Build/Install ActiveMQ-CPP 3.4.1 #----------------------------------------------------------------------------- if( VIZ_NODE ) ExternalProject_Add( activemq-cpp URL ${ACTIVEMQ_CPP_URL} SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/ActiveMQ-cpp/src BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ActiveMQ-cpp/build INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/ActiveMQ-cpp/install UPDATE_COMMAND "" CONFIGURE_COMMAND /configure --prefix= --disable-ssl --with-apr=${CMAKE_CURRENT_BINARY_DIR}/apr/install --with-apr-util=${CMAKE_CURRENT_BINARY_DIR}/apr-util/install ) endif( VIZ_NODE ) #----------------------------------------------------------------------------- # Dowload [ GWT, Flex3, Qooxdoo, Ant ] #----------------------------------------------------------------------------- if( WEB_SAMPLES ) ExternalProject_Add( GoogleWebToolkit URL "http://google-web-toolkit.googlecode.com/files/gwt-2.0.3.zip" SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/gwt BINARY_DIR "" UPDATE_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) #----------------------------------------------------------------------------- ExternalProject_Add( qooxdoo URL "http://surfnet.dl.sourceforge.net/project/qooxdoo/qooxdoo-current/1.5/qooxdoo-1.5-sdk.zip" SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/qooxdoo BINARY_DIR "" UPDATE_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) #----------------------------------------------------------------------------- ExternalProject_Add( ant URL "http://www.apache.org/dist/ant/binaries/apache-ant-1.8.3-bin.zip" SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/ant BINARY_DIR "" UPDATE_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) endif( WEB_SAMPLES ) #----------------------------------------------------------------------------- # Download Flex SDK #----------------------------------------------------------------------------- if( BUILD_FLASH_RENDERER ) ExternalProject_Add( Flex3-MPL URL "http://fpdownload.adobe.com/pub/flex/sdk/builds/flex3/flex_sdk_3.4.0.9271_mpl.zip" SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/flex3 BINARY_DIR "" UPDATE_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) endif( BUILD_FLASH_RENDERER ) #----------------------------------------------------------------------------- # Download/Configure/Build/Install ParaViewWeb #----------------------------------------------------------------------------- set ( ParaViewWebConfig -DBUILD_TESTING:BOOL=OFF ) if( VIZ_NODE ) set ( ParaViewWebConfig ${ParaViewWebConfig} -DCMAKE_BUILD_TYPE:STRING=Debug -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/install -DACTIVEMQ_INCLUDE_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/ActiveMQ-cpp/install/include/activemq-cpp-${ACTIVEMQ_CPP_VERSION} -DBUILD_PW_SERVER:BOOL=ON -DParaView_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/ParaView/build ) if (NOT WEB_SERVICE) set ( ParaViewWebConfig ${ParaViewWebConfig} -DBUILD_WEB_SERVICE:BOOL=OFF ) endif (NOT WEB_SERVICE) endif(VIZ_NODE) if( WEB_SERVICE ) set ( ParaViewWebConfig ${ParaViewWebConfig} -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/install -DBUILD_FLEX_RENDERER:BOOL=${BUILD_FLASH_RENDERER} -DBUILD_STATE_APP_BUILDER:BOOL=${WEB_SAMPLES} -DBUILD_WEB_APPLICATION:BOOL=${WEB_SAMPLES} -DBUILD_WEB_SAMPLES:BOOL=${WEB_SAMPLES} -DBUILD_WEB_SERVICE:BOOL=ON -DWORKING_DIR:PATH=/value-not-used-by-us -DFLEX_HOME:PATH=${CMAKE_CURRENT_BINARY_DIR}/flex3 -DGWT_SDK_HOME:PATH=${CMAKE_CURRENT_BINARY_DIR}/gwt -DANT_EXECUTABLE:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/ant/bin/ant ) if (NOT VIZ_NODE) set ( ParaViewWebConfig ${ParaViewWebConfig} -DBUILD_PW_SERVER:BOOL=OFF ) endif (NOT VIZ_NODE) endif( WEB_SERVICE ) if( WEB_SERVICE OR VIZ_NODE) ExternalProject_Add( ParaViewWeb GIT_REPOSITORY ${PARAVIEWWEB_GIT_URL} SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/src BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/build INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/install CMAKE_ARGS ${ParaViewWebConfig} ) endif( WEB_SERVICE OR VIZ_NODE ) #----------------------------------------------------------------------------- # Setup dependencies #----------------------------------------------------------------------------- if( WEB_SAMPLES ) add_dependencies(ParaViewWeb qooxdoo ant GoogleWebToolkit) endif( WEB_SAMPLES ) if( BUILD_FLASH_RENDERER ) add_dependencies(ParaViewWeb Flex3-MPL) endif( BUILD_FLASH_RENDERER ) if( VIZ_NODE ) add_dependencies(APR-UTIL APR) add_dependencies(activemq-cpp APR-UTIL APR) add_dependencies(ParaViewWeb activemq-cpp ParaView) if(USE_OSMESA) add_dependencies(ParaView OSMesa) endif(USE_OSMESA) endif( VIZ_NODE ) #----------------------------------------------------------------------------- # Install rules #----------------------------------------------------------------------------- if( WEB_SERVICE OR VIZ_NODE) install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/install/Web-apps/ DESTINATION Web ) endif( WEB_SERVICE OR VIZ_NODE) if( VIZ_NODE ) install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ParaView/install/ DESTINATION ParaView ) install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/install/bin DESTINATION bin ) install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ParaViewWeb/install/lib DESTINATION lib ) if(USE_OSMESA) install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/OSMesa/install/lib DESTINATION lib ) endif(USE_OSMESA) endif( VIZ_NODE )