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 (101 lines) | stat: -rw-r--r-- 3,332 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
# The GCC-XML forwarding exectuable.
ADD_EXECUTABLE(gccxml
  gxSystemTools.cxx
  gxConfiguration.cxx
  gxDocumentation.cxx
  gxFlagsParser.cxx
  gxFront.cxx
)

TARGET_LINK_LIBRARIES(gccxml gxsys)

IF(UNIX)
  INSTALL_TARGETS(${GCCXML_INSTALL_ROOT}/bin gccxml)
ENDIF(UNIX)

# If we are inside a project that is building gccxml_cc1plus for us,
# add the dependency to build it first.
IF(GCCXML_NATIVE_CC1PLUS)
  ADD_DEPENDENCIES(gccxml gccxml_cc1plus)
ENDIF(GCCXML_NATIVE_CC1PLUS)

IF(NOT UNIX)
  # Use a dummy executable to enforce dependencies on generation
  # of patched compiler headers.  This is necessary to get around
  # dependency limitations on custom targets in CMake 1.6.  Later
  # cmakes do not have this limitation.
  ADD_EXECUTABLE(vcInstallPatch ${GCCXML_BINARY_DIR}/vcInstall_stamp.c)
  SET_SOURCE_FILES_PROPERTIES(${GCCXML_BINARY_DIR}/vcInstall_stamp.c
    PROPERTIES GENERATED 1)
  # Create the MSVC support directories.
  # This will just execute on every build because we don't know
  # what files and directories it may create.
  ADD_CUSTOM_COMMAND(TARGET vcInstallPatch
    SOURCE ${GCCXML_SOURCE_DIR}/VcInstall/vcPatch.readme.txt
    COMMAND ${GCCXML_VCINSTALL_EXE}
    ARGS ${GCCXML_SOURCE_DIR}/VcInstall ${GCCXML_ROOT}
         ${GCCXML_BINARY_DIR}/vcInstall_stamp.c
    OUTPUTS ${GCCXML_BINARY_DIR}/vcInstall_stamp.c
    DEPENDS ${GCCXML_VCINSTALL_EXE}
    ${GCCXML_SOURCE_DIR}/VcInstall/vc6Include.patch
    ${GCCXML_SOURCE_DIR}/VcInstall/vc7Include.patch
    ${GCCXML_SOURCE_DIR}/VcInstall/vc7PlatformSDK.patch
    ${GCCXML_SOURCE_DIR}/VcInstall/vc71Include.patch
    ${GCCXML_SOURCE_DIR}/VcInstall/vc71PlatformSDK.patch
    )

  ADD_DEPENDENCIES(gccxml vcInstallPatch)
ENDIF(NOT UNIX)

#-----------------------------------------------------------------------------
# Generate documentation.
SET(CMD_DIR ${GCCXML_EXECUTABLE_DIR}/${CMAKE_CFG_INTDIR})
IF(WIN32)
  SET(CMD_EXT ".exe")
ELSE(WIN32)
  SET(CMD_EXT "")
ENDIF(WIN32)
SET(CMD ${CMD_DIR}/gccxml${CMD_EXT})

MAKE_DIRECTORY(${GCCXML_EXECUTABLE_DIR}/doc)

ADD_CUSTOM_TARGET(documentation ALL DEPENDS
  ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.1
  ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.txt
  ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.html
  ${GCCXML_EXECUTABLE_DIR}/doc/Copyright.txt)
ADD_DEPENDENCIES(documentation gccxml)

ADD_CUSTOM_COMMAND(OUTPUT ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.1
  COMMAND ${CMD}
  ARGS --man > ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.1
  DEPENDS ${CMD}
  )

ADD_CUSTOM_COMMAND(OUTPUT ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.txt
  COMMAND ${CMD}
  ARGS --help > ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.txt
  DEPENDS ${CMD}
  )

ADD_CUSTOM_COMMAND(OUTPUT ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.html
  COMMAND ${CMD}
  ARGS --help-html > ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.html
  DEPENDS ${CMD}
  )

ADD_CUSTOM_COMMAND(OUTPUT ${GCCXML_EXECUTABLE_DIR}/doc/Copyright.txt
  COMMAND ${CMD}
  ARGS --copyright > ${GCCXML_EXECUTABLE_DIR}/doc/Copyright.txt
  DEPENDS ${CMD}
  )

IF(UNIX)
  INSTALL_TARGETS(${GCCXML_INSTALL_ROOT}/bin gccxml)
  INSTALL_FILES(${GCCXML_INSTALL_ROOT}${GCCXML_MAN_DIR}/man1 FILES
    ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.1)
  INSTALL_FILES(${GCCXML_INSTALL_ROOT}${GCCXML_DOC_DIR} FILES
    ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.txt
    ${GCCXML_EXECUTABLE_DIR}/doc/gccxml.html
    ${GCCXML_EXECUTABLE_DIR}/doc/Copyright.txt)
ENDIF(UNIX)