[CMake] Re: CMake Error: Could not get source file entry for ...

Fabian Wein fabian.wein at lse.e-technik.uni-erlangen.de
Tue Nov 20 12:14:21 EST 2007


>> CMake Error: Could not get source file entry for
>> /home/lse10/lse10/lse10/lse/fwein/t/cfs_trunk/release_build/Doc/developer/C
>> MakeFiles/doc-devel ...
>> CMake Error: Cannot find source file
>>
>> "/home/lse10/lse10/lse10/lse10/lse/fwein/t/cfs_trunk/release_build/Doc/deve
>> loper/CMakeFiles/doc-devel" for target "doc-devel"
>>  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm
>> .hpp .hxx .in .txx
>> ...
>>
>> occure in the directories where we build the doxygen docu for C++.

> I think you have to post some of the cmake code in order to get help.
> Probably something is slightly wrong with it ;-)
> 
> Alex

Hi Alex,

yes - you're right :) It's just a quite long file (I cut the copyright
header!)
and thought about some verbose trick to find, where cmake produces the
error.

Tanks for any Help!

Fabian



# FILE OBTAINED FROM JAN WOETZEL AND ADJUSTED BY
# SIMON TRIEBENBACHER FOR PROJECT CFS++

IF (DOXYGEN)

  # click+jump in Emacs and Visual Studio (for doxy.config) (jw)
  IF    (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)")
    SET(DOXY_WARN_FORMAT "\"$file($line) : $text \"")
  ELSE  (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)")
    SET(DOXY_WARN_FORMAT "\"$file:$line: $text \"")
  ENDIF (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)")

  # we need latex for doxygen because of the formulas
  FIND_PACKAGE(LATEX)
  IF    (NOT LATEX_COMPILER)
    MESSAGE(STATUS "latex command LATEX_COMPILER not found but usually
required. You will probably get warnings and user inetraction on d
oxy run.")
  ENDIF (NOT LATEX_COMPILER)
  IF    (NOT MAKEINDEX_COMPILER)
    MESSAGE(STATUS "makeindex command MAKEINDEX_COMPILER not found but
usually required.")
  ENDIF (NOT MAKEINDEX_COMPILER)
  IF    (NOT DVIPS_CONVERTER)
    MESSAGE(STATUS "dvips command DVIPS_CONVERTER not found but
usually required.")
  ENDIF (NOT DVIPS_CONVERTER)

  SET(DOXY_CONFIG_IN
"${CMAKE_CURRENT_SOURCE_DIR}/DoxygenConfig/doxy-config.in")
  SET(DOXY_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/DoxygenConfig/doxy-config")


  IF (EXISTS ${DOXY_CONFIG_IN})
    MESSAGE(STATUS "configured ${DOXY_CONFIG_IN} --> ${DOXY_CONFIG}")
    CONFIGURE_FILE(${DOXY_CONFIG_IN}
      ${DOXY_CONFIG}
      @ONLY )
    # use (configured) doxy.config from (out of place) BUILD tree:
    SET(DOXY_CONFIG ${DOXY_CONFIG})
  ELSE (EXISTS ${DOXY_CONFIG_IN})
    # use static hand-edited doxy.config from SOURCE tree:
    SET(DOXY_CONFIG ${DOXY_CONFIG})
    IF   (EXISTS ${DOXY_CONFIG})
      MESSAGE(STATUS "WARNING: using existing ${DOXY_CONFIG} instead
of configuring from ${DOXY_CONFIG_IN} file.")
    ELSE (EXISTS ${DOXY_CONFIG})
      MESSAGE(SEND_ERROR "FATAL_ERROR: no existing ${DOXY_CONFIG} and
no ${DOXY_CONFIG_IN} found.")
    ENDIF(EXISTS ${DOXY_CONFIG})
  ENDIF(EXISTS ${DOXY_CONFIG_IN})

  IF(WIN32)
    SET(GEN_DOCU_IN "${CMAKE_CURRENT_SOURCE_DIR}/makedoc.bat.in")
    SET(GEN_DOCU "${CMAKE_CURRENT_SOURCE_DIR}/makedoc.bat")
  ELSE(WIN32)
    SET(GEN_DOCU_IN "${CMAKE_CURRENT_SOURCE_DIR}/makedoc.sh.in")
    SET(GEN_DOCU "${CMAKE_CURRENT_SOURCE_DIR}/makedoc.sh")
  ENDIF(WIN32)

  CONFIGURE_FILE(${GEN_DOCU_IN}
    ${GEN_DOCU}
    @ONLY )
  MESSAGE(STATUS "configured ${GEN_DOCU_IN} --> ${GEN_DOCU}")

  ADD_CUSTOM_TARGET(doc-devel
                    ${GEN_DOCU} "build"
                    )

  ADD_CUSTOM_TARGET(doc-devel-rebuild
                    ${GEN_DOCU} "rebuild"
                    )

  ADD_CUSTOM_TARGET(doc-devel-clean
                    ${GEN_DOCU} "clean"
                    )

  # create a windows help .chm file using hhc.exe
  # HTMLHelp DLL must be in path!
  # fallback: use hhw.exe interactively
  IF    (WIN32)
    FIND_PACKAGE(HTMLHelp)
    IF   (HTML_HELP_COMPILER)
      SET (TMP "${CMAKE_CURRENT_BINARY_DIR}\\html\\index.hhp")
      STRING(REGEX REPLACE "[/]" "\\\\" HHP_FILE ${TMP} )
      # MESSAGE(SEND_ERROR "DBG  HHP_FILE=${HHP_FILE}")
      ADD_CUSTOM_TARGET(winhelp ${HTML_HELP_COMPILER} ${HHP_FILE})
      ADD_DEPENDENCIES (winhelp docu)

      IF (NOT TARGET_DOC_SKIP_INSTALL)
      # install windows help?
      # determine useful name for output file
      # should be project and version unique to allow installing
      # multiple projects into one global directory
      IF   (EXISTS "${PROJECT_BINARY_DIR}/html/index.chm")
        IF   (PROJECT_NAME)
          SET(OUT "${PROJECT_NAME}")
        ELSE (PROJECT_NAME)
          SET(OUT "Documentation") # default
        ENDIF(PROJECT_NAME)
        IF   (${PROJECT_NAME}_VERSION_MAJOR)
          SET(OUT "${OUT}-${${PROJECT_NAME}_VERSION_MAJOR}")
          IF   (${PROJECT_NAME}_VERSION_MINOR)
            SET(OUT  "${OUT}.${${PROJECT_NAME}_VERSION_MINOR}")
            IF   (${PROJECT_NAME}_VERSION_PATCH)
              SET(OUT "${OUT}.${${PROJECT_NAME}_VERSION_PATCH}")
            ENDIF(${PROJECT_NAME}_VERSION_PATCH)
          ENDIF(${PROJECT_NAME}_VERSION_MINOR)
        ENDIF(${PROJECT_NAME}_VERSION_MAJOR)
        # keep suffix
        SET(OUT  "${OUT}.chm")

        #MESSAGE("DBG ${PROJECT_BINARY_DIR}/html/index.chm \n${OUT}")
        # create target used by install and package commands
        INSTALL(FILES "${PROJECT_BINARY_DIR}/html/index.chm"
          DESTINATION "doc"
          RENAME "${OUT}"
        )
      ENDIF(EXISTS "${PROJECT_BINARY_DIR}/html/index.chm")
      ENDIF(NOT TARGET_DOC_SKIP_INSTALL)

    ENDIF(HTML_HELP_COMPILER)
    # MESSAGE(SEND_ERROR "HTML_HELP_COMPILER=${HTML_HELP_COMPILER}")
  ENDIF (WIN32)
ELSE (DOXYGEN)
  MESSAGE(STATUS "Doxygen not found")
ENDIF(DOXYGEN)


More information about the CMake mailing list