Warning, /jana2/cmake/MakeJanaThis.cmake is written in an unsupported language. File is not indexed.
0001 #
0002 # This is used in the generation of the files:
0003 # jana-config
0004 # jana-this.sh
0005 # jana-this.csh
0006 #
0007 # The primary role of this file is to set cmake variables based on the
0008 # output of running various 3rd party tools meant to help with your
0009 # build system. For example, it runs root-config --cflags and puts the
0010 # results in the ROOTCFLAGS cmake variable. That variable is then used
0011 # in generating the jana-config script so that it can report those flags
0012 # for use when building against this version of JANA.
0013 #
0014 # In addition, some variables such as JANA2_HAVE_ROOT are set which can be used
0015 # in preprocessor directives to conditionally compile code depending on
0016 # whether the 3rd party package is present.
0017 #
0018
0019 set(JANA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
0020
0021 execute_process(COMMAND SBMS/osrelease.pl
0022 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0023 OUTPUT_VARIABLE BMS_OSNAME
0024 OUTPUT_STRIP_TRAILING_WHITESPACE)
0025
0026 # ROOT
0027 if(${USE_ROOT})
0028 if(DEFINED ENV{ROOTSYS})
0029 set(JANA2_HAVE_ROOT 1)
0030 set(ROOTSYS $ENV{ROOTSYS})
0031
0032 execute_process(COMMAND $ENV{ROOTSYS}/bin/root-config --cflags
0033 OUTPUT_VARIABLE ROOTCFLAGS
0034 OUTPUT_STRIP_TRAILING_WHITESPACE)
0035
0036 execute_process(COMMAND $ENV{ROOTSYS}/bin/root-config --glibs
0037 OUTPUT_VARIABLE ROOTGLIBS
0038 OUTPUT_STRIP_TRAILING_WHITESPACE)
0039 else()
0040 # message(STATUS "Did not find ROOT")
0041 set(JANA2_HAVE_ROOT 0)
0042 endif()
0043 else()
0044 set(JANA2_HAVE_ROOT 0)
0045 endif()
0046
0047 # XERCESC
0048 # n.b. this is hard-coded for now to assume XERCES 3
0049 if(${USE_XERCES})
0050 if(DEFINED ENV{XERCESCROOT})
0051 set(JANA2_HAVE_XERCES 1)
0052 set(XERCESCROOT $ENV{XERCESCROOT})
0053 set(XERCES_CPPFLAGS "-I${XERCESCROOT}/include/xercesc")
0054 set(XERCES_LIBS "-lxerces-c")
0055 if( NOT $XERCESCROOT EQUAL "/usr" )
0056 set(XERCES_CPPFLAGS "${XERCES_CPPFLAGS} -I${XERCESCROOT}/include")
0057 set(XERCES_LDFLAGS "-L${XERCESCROOT}/lib")
0058 endif()
0059 else()
0060 find_package(XercesC)
0061 if(XercesC_FOUND)
0062 set(JANA2_HAVE_XERCES 1)
0063 get_filename_component(XERCESCROOT "${XercesC_INCLUDE_DIRS}" DIRECTORY)
0064 set(XERCES_CPPFLAGS "-I${XercesC_INCLUDE_DIRS} -I${XercesC_INCLUDE_DIRS}/xercesc")
0065 set(XERCES_LIBS "${XercesC_LIBRARIES}")
0066 else()
0067 set(JANA2_HAVE_XERCES 0)
0068 endif()
0069 endif()
0070 else()
0071 set(JANA2_HAVE_XERCES 0)
0072 endif()
0073
0074 # cMsg
0075 # n.b. I don't believe this will be needed in JANA2
0076 #if(DEFINED ENV{CMSGROOT})
0077 # set(HAVE_CMSG 1)
0078 # set(CMSG_CPPFLAGS "-I${CMSGROOT}/include")
0079 # set(CMSG_LDFLAGS "-L${CMSGROOT}/lib")
0080 # set(CMSG_LIBS "-lcmsg -lcmsgxx -lcmsgRegex")
0081 #else()
0082 # set(HAVE_CMSG 0)
0083 #endif()
0084
0085
0086 # CCDB
0087 if(DEFINED ENV{CCDB_HOME})
0088 set(HAVE_CCDB 1)
0089 set(CCDB_HOME $ENV{CCDB_HOME})
0090 set(CCDB_CPPFLAGS "-I${CCDB_HOME}/include")
0091 set(CCDB_LDFLAGS "-L${CCDB_HOME}/lib")
0092 set(CCDB_LIBS "-lccdb")
0093 else()
0094 set(HAVE_CCDB 0)
0095 endif()
0096
0097 # MySQL
0098 # TODO: Strange that MySQL does not provide a FindMySQL.cmake. There seem to be plenty out there though and we should maybe adopt one to replace the following
0099 execute_process(COMMAND which mysql_config
0100 OUTPUT_VARIABLE MYSQL_FOUND
0101 OUTPUT_STRIP_TRAILING_WHITESPACE)
0102 if(MYSQL_FOUND)
0103 set(HAVE_MYSQL 1)
0104 set(JANA2_MYSQL_CONFIG ${MYSQL_FOUND})
0105 execute_process(COMMAND mysql_config --cflags
0106 OUTPUT_VARIABLE MYSQL_CFLAGS
0107 OUTPUT_STRIP_TRAILING_WHITESPACE)
0108
0109 execute_process(COMMAND mysql_config --libs
0110 OUTPUT_VARIABLE MYSQL_LDFLAGS
0111 OUTPUT_STRIP_TRAILING_WHITESPACE)
0112
0113 execute_process(COMMAND mysql_config --version
0114 OUTPUT_VARIABLE MYSQL_VERSION
0115 OUTPUT_STRIP_TRAILING_WHITESPACE)
0116
0117 execute_process(COMMAND mysql_config --variable=pkglibdir
0118 OUTPUT_VARIABLE MYSQL_PKGLIBDIR
0119 OUTPUT_STRIP_TRAILING_WHITESPACE)
0120 else()
0121 set(HAVE_MYSQL 0)
0122 endif()
0123
0124 # CURL
0125 execute_process(COMMAND "which curl-config 2> /dev/null"
0126 OUTPUT_VARIABLE CURL_FOUND
0127 OUTPUT_STRIP_TRAILING_WHITESPACE)
0128
0129 if(CURL_FOUND)
0130 set(HAVE_CURL 1)
0131 set(JANA2_CURL_CONFIG ${CURL_FOUND})
0132 execute_process(COMMAND curl-config --cflags
0133 OUTPUT_VARIABLE CURL_CFLAGS
0134 OUTPUT_STRIP_TRAILING_WHITESPACE)
0135
0136 execute_process(COMMAND curl-config --libs
0137 OUTPUT_VARIABLE CURL_LDFLAGS
0138 OUTPUT_STRIP_TRAILING_WHITESPACE)
0139
0140 execute_process(COMMAND curl-config --prefix
0141 OUTPUT_VARIABLE CURL_ROOT
0142 OUTPUT_STRIP_TRAILING_WHITESPACE)
0143 else()
0144 set(HAVE_CURL 0)
0145 endif()
0146
0147 configure_file(scripts/jana-config.in jana-config @ONLY)
0148 configure_file(scripts/jana-this.sh.in jana-this.sh @ONLY)
0149 configure_file(scripts/jana-this.csh.in jana-this.csh @ONLY)
0150
0151 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jana-config DESTINATION bin)
0152 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jana-this.sh DESTINATION bin)
0153 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jana-this.csh DESTINATION bin)