#------------------------------------------------ # RNABuilder # # Creates rnabuilder executable and and # installer for the executale, libraries and example data files # Defaults are shared & optimized. Variants # are created for static (_static) and debug (_d). # # target to make installer : installer # #---------------------------------------------------- cmake_minimum_required(VERSION 2.4.6) if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) cmake_policy(SET CMP0005 NEW) endif(COMMAND cmake_policy) PROJECT (RNABuilder) SET( RNABUILDER_MAJOR_VERSION 0 ) SET( RNABUILDER_MINOR_VERSION 1 ) SET( RNABUILDER_PATCH_VERSION 1 ) # SUBDIRS ( tests) No tests yet # # set the default name of the executable # IF( NOT RNABUILDER ) SET( RNABUILDER RNABuilder ) ENDIF( NOT RNABUILDER ) # # put CMAKE_BUILD_TYPE and VTK_DIR in # IF(UNIX AND NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Debug or Release build" FORCE) ENDIF(UNIX AND NOT CMAKE_BUILD_TYPE) # # mark the as advanced so the appear in the CMake gui # MARK_AS_ADVANCED( SimTK_SDK VTK_DIR RNABUILDER) # # set the default values for SimTK_INSTALL_PREFIX and SimTK_SDK # IF(${CMAKE_C_COMPILER} MATCHES "gcc") IF(NOT SimTK_INSTALL_PREFIX) SET(SimTK_INSTALL_PREFIX "/usr/local/SimTK" CACHE PATH "Install directory") ENDIF(NOT SimTK_INSTALL_PREFIX) IF(NOT SimTK_SDK) SET(SimTK_SDK "/usr/local/SimTK" CACHE PATH "SimTK dependency path" ) ENDIF(NOT SimTK_SDK) SET( MATH_LIBS pthread m ) ELSE(${CMAKE_C_COMPILER} MATCHES "gcc") IF(NOT SimTK_INSTALL_PREFIX) SET(SimTK_INSTALL_PREFIX "C:/Program Files (x86)/SimTK" CACHE PATH "Install directory") ENDIF(NOT SimTK_INSTALL_PREFIX) IF(NOT SimTK_SDK) SET(SimTK_SDK "C:/Program Files (x86)/SimTK" CACHE PATH "SimTK dependency path") ENDIF(NOT SimTK_SDK) SET( MATH_LIBS pthreadVC2 ws2_32 ) ENDIF(${CMAKE_C_COMPILER} MATCHES "gcc") # # # determine if we are building on a 32 or 64 bit machine # IF( ${CMAKE_SIZEOF_VOID_P} EQUAL 8 ) SET( LIB64 64 ) ELSE( ${CMAKE_SIZEOF_VOID_P} EQUAL 8 ) SET( LIB64 ) ENDIF( ${CMAKE_SIZEOF_VOID_P} EQUAL 8 ) # # Set the default build type to debug. set CMAKE_BUILD_TYPE # when cmake is run to override this # IF ( CMAKE_BUILD_TYPE MATCHES Debug) SET( DEBUG_SUFFIX _d) ENDIF ( CMAKE_BUILD_TYPE MATCHES Debug) LINK_DIRECTORIES( ${CMAKE_BINARY_DIR} ${SimTK_SDK}/lib${LIB64} ) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include ${SimTK_SDK}/include) ADD_EXECUTABLE( ${RNABUILDER} ${PROJECT_SOURCE_DIR}/src/RNABuilder.cpp ${PROJECT_SOURCE_DIR}/src/Repel.cpp ${PROJECT_SOURCE_DIR}/src/MonoAtoms.cpp ${PROJECT_SOURCE_DIR}/src/ParameterReader.cpp ${PROJECT_SOURCE_DIR}/src/BaseInteractionParameterReader.cpp ${PROJECT_SOURCE_DIR}/src/Utils.cpp ${PROJECT_SOURCE_DIR}/src/TetherForce.cpp ${PROJECT_SOURCE_DIR}/src/BiopolymerClass.cpp ${PROJECT_SOURCE_DIR}/src/BiopolymerClassTwoTransformForces.cpp ${PROJECT_SOURCE_DIR}/src/WaterDroplet.cpp ${PROJECT_SOURCE_DIR}/src/DensityMap.cpp ${PROJECT_SOURCE_DIR}/src/DensityForce.cpp ) SET_TARGET_PROPERTIES( ${RNABUILDER} PROPERTIES COMPILE_FLAGS "-DSimTK_USE_STATIC_LIBRARIES" ) # # If we are compiling on Mac Leopard, macosx-version-min needs # to be set so the binaries can also run on Mac Tiger # IF( APPLE ) SET( CMAKE_CXX_FLAGS "-mmacosx-version-min=10.4" ) SET( LAPACK libSimTKlapack.dylib ) ELSE( APPLE ) IF( WIN32 ) SET( LAPACK SimTKlapack.dll ) ELSE( WIN32 ) SET( LAPACK libSimTKlapack.so ) ENDIF(WIN32) ENDIF( APPLE ) # # copy the lapack library into the output directory so that RNABuilder will look for # SimTKlpack in its current directory at runtime # ADD_CUSTOM_TARGET( COPY_LAPACK ALL COMMAND cmake -E copy ${SimTK_SDK}/lib/${LAPACK} ${CMAKE_BINARY_DIR}/. ) ADD_DEPENDENCIES( ${RNABUILDER} COPY_LAPACK ) TARGET_LINK_LIBRARIES( ${RNABUILDER} debug SimTKmolmodel_static_d optimized SimTKmolmodel_static debug SimTKsimbody_static_d optimized SimTKsimbody_static debug SimTKmath_static_d optimized SimTKmath_static debug SimTKcommon_static_d optimized SimTKcommon_static SimTKlapack ${MATH_LIBS} ) # Packaging for the installer SET( CPACK_PACKAGE_NAME "RNABuilder") SET( CPACK_PACKAGE_FILE_NAME "RNABuilder") SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "RNABuilder executable and data files") SET( CPACK_PACKAGE_VENDOR "Stanford University") SET( CPACK_PACKAGE_VERSION_MAJOR ${RNABUILDER_MAJOR_VERSION}) SET( CPACK_PACKAGE_VERSION_MINOR ${RNABUILDER_MINOR_VERSION}) SET( CPACK_PACKAGE_VERSION_PATCH ${RNABUILDER_PATCH_VERSION}) SET( CPACK_PACKAGE_DESCRIPTION_FILE ${PROJECT_SOURCE_DIR}/Installer/README.txt) SET( CPACK_RESOURCE_FILE_README ${PROJECT_SOURCE_DIR}/Installer/README.txt) SET( CPACK_RESOURCE_FILE_WELCOME ${PROJECT_SOURCE_DIR}/Installer/WELCOME.txt) SET( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/Installer ${CMAKE_MODULE_PATH} ) # # CMake's generator for PackageMaker always returns /usr for GetInstallPrefix() # while the other generators just return / Manually setting # CPACK_TEMPORARY_INSTALL_DIRECTORY overrides this so /usr is not always # prepended to the install path # IF( APPLE ) SET( CPACK_TEMPORARY_INSTALL_DIRECTORY _CPack_Packages//Darwin/PackageMaker/RNABuilder ) ENDIF( APPLE ) IF( WIN32 ) # Locate the Visual Studio redistrobutable used for builds FIND_PATH( VC_REDIST NAME vcredist_x86.exe PATHS "c:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bootstrapper/Packages/vcredist_x86") IF( VC_REDIST STREQUAL "VC_REDIST-NOTFOUND" ) MESSAGE( FATAL_ERROR "Cannot find vcredist_x86.exe in c:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bootstrapper/Packages/vcredist_x86" ) ENDIF( VC_REDIST STREQUAL "VC_REDIST-NOTFOUND" ) SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "ExecWait \\\"$INSTDIR\\\\bin\\\\vcredist_x86.exe\\\" ") SET(CPACK_NSIS_DISPLAY_NAME RNABuilder) SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\simtk.org/docman/?group_id=97") SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\simtk.org/home/RNABuilder") SET(CPACK_NSIS_CONTACT "jacklm@stanford.edu") SET(CPACK_NSIS_MODIFY_PATH ON) SET(CPACK_GENERATOR "NSIS") SET(CPACK_SOURCE_GENERATOR "ZIP") SET(CPACK_PACKAGE_INSTALL_DIRECTORY ${RNABUILDER} ) ELSE( WIN32 ) IF( APPLE ) SET(CPACK_GENERATOR "PackageMaker") ELSE( APPLE ) SET(CPACK_GENERATOR "STGZ") ENDIF( APPLE ) SET(CPACK_PACKAGE_INSTALL_DIRECTORY . ) ENDIF( WIN32 ) # # generate CPackConfig.cmake AFTER ALL CPACK variables have been set # INCLUDE(CPack) INSTALL ( FILES ${PROJECT_SOURCE_DIR}/Installer/contacts.dat DESTINATION . ) #INSTALL ( FILES ${PROJECT_SOURCE_DIR}/installer/Base-interaction-parameters.4.csv DESTINATION . ) INSTALL ( FILES ${PROJECT_SOURCE_DIR}/Installer/Base-interaction-parameters.pseudoelectrostatic.csv DESTINATION . ) INSTALL ( FILES ${PROJECT_SOURCE_DIR}/Installer/contacts.singlebasepair.dat DESTINATION . ) INSTALL ( FILES ${PROJECT_SOURCE_DIR}/Installer/contacts.hairpin-short.dat DESTINATION . ) INSTALL ( FILES ${PROJECT_SOURCE_DIR}/Installer/contacts.TAR.dat DESTINATION . ) INSTALL ( FILES ${PROJECT_SOURCE_DIR}/Installer/1ARJ.pdb DESTINATION . ) INSTALL ( FILES ${SimTK_SDK}/lib/${LAPACK} DESTINATION . ) INSTALL (TARGETS ${RNABUILDER} DESTINATION .) IF(WIN32) INSTALL ( FILES ${SimTK_SDK}/lib/pthreadVC2.lib DESTINATION . ) INSTALL ( FILES ${SimTK_SDK}/lib/pthreadVC2.dll DESTINATION . ) INSTALL( FILES ${VC_REDIST}/vcredist_x86.exe DESTINATION . ) ELSE(WIN32) IF(APPLE) INSTALL ( FILES ${SimTK_SDK}/lib/libSimTKAtlas.dylib DESTINATION . ) ENDIF(APPLE) ENDIF(WIN32) #INSTALL ( FILES ${CMAKE_BINARY_DIR}/${RNABUILDER} # PERMISSIONS WORLD_READ WORLD_WRITE WORLD_EXECUTE # DESTINATION . )