1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
PROJECT(GCCXML)
# Set the version number.
SET(GCCXML_VERSION_MAJOR 0)
SET(GCCXML_VERSION_MINOR 7)
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 @ONLY IMMEDIATE)
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)
|