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)
|