PROJECT(GCCXML) # Set the version number. SET(GCCXML_VERSION_MAJOR 0) SET(GCCXML_VERSION_MINOR 6) SET(GCCXML_VERSION_PATCH 0) SET(GCCXML_VERSION "${GCCXML_VERSION_MAJOR}.${GCCXML_VERSION_MINOR}") SET(GCCXML_VERSION_FULL "${GCCXML_VERSION}.${GCCXML_VERSION_PATCH}") # Configure the build. IF(EXECUTABLE_OUTPUT_PATH) SET(GCCXML_EXECUTABLE_DIR ${EXECUTABLE_OUTPUT_PATH}) ELSE(EXECUTABLE_OUTPUT_PATH) SET(EXECUTABLE_OUTPUT_PATH ${GCCXML_BINARY_DIR}) SET(GCCXML_EXECUTABLE_DIR ${GCCXML_BINARY_DIR}) ENDIF(EXECUTABLE_OUTPUT_PATH) CONFIGURE_FILE(${GCCXML_SOURCE_DIR}/GXFront/gxConfigure.h.in ${GCCXML_BINARY_DIR}/GXFront/gxConfigure.h) INCLUDE_DIRECTORIES(${GCCXML_BINARY_DIR}/GXFront) # Check for ANSI flags on non-GNU compilers. IF(NOT CMAKE_COMPILER_IS_GNUCXX) SET(CMAKE_TRY_ANSI_CXX_FLAGS "") IF(CMAKE_SYSTEM MATCHES "IRIX.*") SET(CMAKE_TRY_ANSI_CXX_FLAGS "-LANG:std") ENDIF(CMAKE_SYSTEM MATCHES "IRIX.*") IF(CMAKE_SYSTEM MATCHES "OSF.*") SET(CMAKE_TRY_ANSI_CXX_FLAGS "-std strict_ansi -nopure_cname") ENDIF(CMAKE_SYSTEM MATCHES "OSF.*") IF(CMAKE_CXX_ACCEPTS_FLAGS MATCHES "^CMAKE_CXX_ACCEPTS_FLAGS$") INCLUDE(${CMAKE_ROOT}/Modules/TestCXXAcceptsFlag.cmake) # if CMAKE_TRY_ANSI_CXX_FLAGS has something in it, see # if the compiler accepts it IF(CMAKE_TRY_ANSI_CXX_FLAGS MATCHES ".+") CHECK_CXX_ACCEPTS_FLAG("${CMAKE_TRY_ANSI_CXX_FLAGS}" CMAKE_CXX_ACCEPTS_FLAGS) # if the compiler liked the flag then set CMAKE_ANSI_CXXFLAGS # to the flag ELSE(CMAKE_TRY_ANSI_CXX_FLAGS MATCHES ".+") SET(CMAKE_CXX_ACCEPTS_FLAGS 0) ENDIF(CMAKE_TRY_ANSI_CXX_FLAGS MATCHES ".+") ENDIF(CMAKE_CXX_ACCEPTS_FLAGS MATCHES "^CMAKE_CXX_ACCEPTS_FLAGS$") IF(CMAKE_CXX_ACCEPTS_FLAGS) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_TRY_ANSI_CXX_FLAGS}") ENDIF(CMAKE_CXX_ACCEPTS_FLAGS) ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) # Figure out what is being used to build GCC-XML. SET(GCCXML_CXX_COMPILER "${CMAKE_CXX_COMPILER}") SET(GCCXML_CXX_FLAGS "${CMAKE_CXX_FLAGS}") IF(CMAKE_BUILD_TOOL MATCHES "nmake") SET(GCCXML_CXX_COMPILER "cl") ENDIF(CMAKE_BUILD_TOOL MATCHES "nmake") IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") SET(GCCXML_CXX_COMPILER "msvc6") ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") IF(CMAKE_GENERATOR MATCHES "Visual Studio 7$") SET(GCCXML_CXX_COMPILER "msvc7") ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7$") IF(CMAKE_GENERATOR MATCHES "Visual Studio 7 .NET 2003") SET(GCCXML_CXX_COMPILER "msvc71") ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7 .NET 2003") # Create the kwsys library for GCC-XML. SET(BUILD_SHARED_LIBS 0) SET(LIBRARY_OUTPUT_PATH ${GCCXML_BINARY_DIR}/KWSys) SET(KWSYS_NAMESPACE gxsys) SET(KWSYS_USE_Process 1) SET(KWSYS_USE_SystemTools 1) SET(KWSYS_HEADER_ROOT ${GCCXML_BINARY_DIR}) INCLUDE_DIRECTORIES(${GCCXML_BINARY_DIR}) SUBDIRS(KWSys) IF(UNIX) # Installation directories. IF(NOT GCCXML_DATA_DIR) SET(GCCXML_DATA_DIR "/share/gccxml-${GCCXML_VERSION}" CACHE STRING "Install location for data (relative to prefix).") MARK_AS_ADVANCED(GCCXML_DATA_DIR) ENDIF(NOT GCCXML_DATA_DIR) IF(NOT GCCXML_DOC_DIR) SET(GCCXML_DOC_DIR "/share/doc/gccxml-${GCCXML_VERSION}" CACHE STRING "Install location for documentation (relative to prefix).") MARK_AS_ADVANCED(GCCXML_DOC_DIR) ENDIF(NOT GCCXML_DOC_DIR) IF(NOT GCCXML_MAN_DIR) SET(GCCXML_MAN_DIR "/share/man" CACHE STRING "Install location for man pages (relative to prefix).") MARK_AS_ADVANCED(GCCXML_MAN_DIR) ENDIF(NOT GCCXML_MAN_DIR) # Installation rules for UNIX. SET(GCCXML_ROOT ${GCCXML_SOURCE_DIR}/Support) SUBDIRS (Support) ELSE(UNIX) # Include file patch program for Windows. SET(GCCXML_ROOT ${GCCXML_EXECUTABLE_DIR}) INCLUDE_DIRECTORIES(${GCCXML_SOURCE_DIR}/GXFront) SUBDIRS(VcInstall) UTILITY_SOURCE(GCCXML_VCINSTALL_EXE vcInstall VcInstall) MARK_AS_ADVANCED(GCCXML_VCINSTALL_EXE) ENDIF(UNIX) # Directory to build gccxml executable. SUBDIRS(GXFront) # Create a configuration file for use from the build directory. CONFIGURE_FILE(${GCCXML_SOURCE_DIR}/GXFront/config_build.in ${GCCXML_EXECUTABLE_DIR}/gccxml_config) IF(UNIX) # Create a configuration file for use from the install directory. CONFIGURE_FILE(${GCCXML_SOURCE_DIR}/GXFront/config_install.in ${GCCXML_BINARY_DIR}/GXFront/InstallOnly/gccxml_config) IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.4) INSTALL_FILES(${GCCXML_INSTALL_ROOT}${GCCXML_DATA_DIR} FILES ${GCCXML_BINARY_DIR}/GXFront/InstallOnly/gccxml_config) ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.4) ENDIF(UNIX)