File: CMakeLists.txt

package info (click to toggle)
gccxml 0.7.0%2Bcvs20060311-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 45,240 kB
  • ctags: 59,007
  • sloc: ansic: 589,435; asm: 19,610; cpp: 12,681; sh: 4,326; yacc: 3,727; makefile: 3,074; perl: 318; lex: 307; awk: 117; pascal: 78; sed: 20
file content (122 lines) | stat: -rw-r--r-- 4,687 bytes parent folder | download
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)