Blame src/CMakeLists.txt

Packit Service 50c9f2
# vim:ts=4:sw=4:expandtab:autoindent:
Packit Service 50c9f2
Packit Service 50c9f2
include_directories(
Packit Service 50c9f2
    ${CMAKE_SOURCE_DIR}/qtools
Packit Service 50c9f2
    ${CMAKE_SOURCE_DIR}/libmd5
Packit Service 50c9f2
    ${CMAKE_SOURCE_DIR}/vhdlparser/
Packit Service 50c9f2
    ${CMAKE_SOURCE_DIR}/src
Packit Service 50c9f2
    ${CLANG_INCLUDEDIR}
Packit Service 50c9f2
    ${GENERATED_SRC}
Packit Service 50c9f2
)
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
file(MAKE_DIRECTORY ${GENERATED_SRC})
Packit Service 50c9f2
file(GLOB LANGUAGE_FILES "${CMAKE_SOURCE_DIR}/src/translator_??.h")
Packit Service 50c9f2
Packit Service 50c9f2
# instead of increasebuffer.py
Packit Service 50c9f2
add_definitions(-DYY_BUF_SIZE=262144 -DYY_READ_BUF_SIZE=262144)
Packit Service 50c9f2
Packit Service 50c9f2
# generate settings.h
Packit Service 50c9f2
file(GENERATE OUTPUT ${GENERATED_SRC}/settings.h
Packit Service 50c9f2
CONTENT "#ifndef SETTINGS_H
Packit Service 50c9f2
#define SETTINGS_H
Packit Service 50c9f2
#define USE_SQLITE3 ${sqlite3}
Packit Service 50c9f2
#define USE_LIBCLANG ${clang}
Packit Service 50c9f2
#define IS_SUPPORTED(x) \\
Packit Service 50c9f2
  ((USE_SQLITE3  && strcmp(\"USE_SQLITE3\",(x))==0)  || \\
Packit Service 50c9f2
   (USE_LIBCLANG && strcmp(\"USE_LIBCLANG\",(x))==0) || \\
Packit Service 50c9f2
  0)
Packit Service 50c9f2
#endif" )
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
# generate version.cpp
Packit Service 50c9f2
file(GENERATE OUTPUT ${GENERATED_SRC}/version.cpp
Packit Service 50c9f2
    CONTENT "char versionString[]=\"${VERSION}\";"
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/version.cpp PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
# configvalues.h
Packit Service 50c9f2
add_custom_command(
Packit Service 50c9f2
    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
Packit Service 50c9f2
    DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
Packit Service 50c9f2
    OUTPUT ${GENERATED_SRC}/configvalues.h
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/configvalues.h PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
# configvalues.cpp
Packit Service 50c9f2
add_custom_command(
Packit Service 50c9f2
    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
Packit Service 50c9f2
    DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
Packit Service 50c9f2
    OUTPUT ${GENERATED_SRC}/configvalues.cpp
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
# configoptions.cpp
Packit Service 50c9f2
add_custom_command(
Packit Service 50c9f2
    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
Packit Service 50c9f2
    DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
Packit Service 50c9f2
    OUTPUT ${GENERATED_SRC}/configoptions.cpp
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/configoptions.cpp PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
# ce_parse.h
Packit Service 50c9f2
add_custom_command(
Packit Service 50c9f2
    COMMAND ${BISON_EXECUTABLE} -l -d -p ce_parsexpYY ${CMAKE_SOURCE_DIR}/src/constexp.y -o ce_parse.c
Packit Service 50c9f2
    DEPENDS ${CMAKE_SOURCE_DIR}/src/constexp.y
Packit Service 50c9f2
    OUTPUT ${GENERATED_SRC}/ce_parse.h
Packit Service 50c9f2
    WORKING_DIRECTORY ${GENERATED_SRC}
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/ce_parse.h PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
# lang_cfg.h
Packit Service 50c9f2
add_custom_command(
Packit Service 50c9f2
    COMMENT  "Generating ${GENERATED_SRC}/lang_cfg.h"
Packit Service 50c9f2
    COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/lang_cfg.cmake ${GENERATED_SRC}/lang_cfg.h ${LANG_CODES}
Packit Service 50c9f2
    DEPENDS ${LANGUAGE_FILES}
Packit Service 50c9f2
    OUTPUT ${GENERATED_SRC}/lang_cfg.h
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/lang_cfg.h PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
# all resource files
Packit Service 50c9f2
file(GLOB RESOURCES ${CMAKE_SOURCE_DIR}/templates/*/*)
Packit Service 50c9f2
Packit Service 50c9f2
# resources.cpp
Packit Service 50c9f2
add_custom_command(
Packit Service 50c9f2
    COMMENT  "Generating ${GENERATED_SRC}/resources.cpp"
Packit Service 50c9f2
    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
Packit Service 50c9f2
    DEPENDS ${RESOURCES}
Packit Service 50c9f2
    OUTPUT ${GENERATED_SRC}/resources.cpp
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/resources.cpp PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
# layout_default.xml
Packit Service 50c9f2
add_custom_command(
Packit Service 50c9f2
    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
Packit Service 50c9f2
    DEPENDS ${CMAKE_SOURCE_DIR}/src/layout_default.xml
Packit Service 50c9f2
    OUTPUT  ${GENERATED_SRC}/layout_default.xml.h
Packit Service 50c9f2
)
Packit Service 50c9f2
set_source_files_properties(${GENERATED_SRC}/layout_default.xml.h PROPERTIES GENERATED 1)
Packit Service 50c9f2
Packit Service 50c9f2
# Targets for flex/bison   generated files
Packit Service 50c9f2
FLEX_TARGET(scanner        scanner.l        ${GENERATED_SRC}/scanner.cpp        COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(code           code.l           ${GENERATED_SRC}/code.cpp           COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(pyscanner      pyscanner.l      ${GENERATED_SRC}/pyscanner.cpp      COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(pycode         pycode.l         ${GENERATED_SRC}/pycode.cpp         COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(fortranscanner fortranscanner.l ${GENERATED_SRC}/fortranscanner.cpp COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(fortrancode    fortrancode.l    ${GENERATED_SRC}/fortrancode.cpp    COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(vhdlcode       vhdlcode.l       ${GENERATED_SRC}/vhdlcode.cpp       COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(tclscanner     tclscanner.l     ${GENERATED_SRC}/tclscanner.cpp     COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(pre            pre.l            ${GENERATED_SRC}/pre.cpp            COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(declinfo       declinfo.l       ${GENERATED_SRC}/declinfo.cpp       COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(defargs        defargs.l        ${GENERATED_SRC}/defargs.cpp        COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(doctokenizer   doctokenizer.l   ${GENERATED_SRC}/doctokenizer.cpp   COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(commentcnv     commentcnv.l     ${GENERATED_SRC}/commentcnv.cpp     COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(commentscan    commentscan.l    ${GENERATED_SRC}/commentscan.cpp    COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(constexp       constexp.l       ${GENERATED_SRC}/constexp.cpp       COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(xmlcode        xmlcode.l        ${GENERATED_SRC}/xmlcode.cpp        COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(sqlcode        sqlcode.l        ${GENERATED_SRC}/sqlcode.cpp        COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
FLEX_TARGET(configimpl     configimpl.l     ${GENERATED_SRC}/configimpl.cpp     COMPILE_FLAGS "${LEX_FLAGS}")
Packit Service 50c9f2
Packit Service 50c9f2
BISON_TARGET(constexp      constexp.y       ${GENERATED_SRC}/ce_parse.cpp       COMPILE_FLAGS ${YACC_FLAGS})
Packit Service 50c9f2
Packit Service 50c9f2
add_library(doxycfg STATIC
Packit Service 50c9f2
    ${GENERATED_SRC}/lang_cfg.h
Packit Service 50c9f2
    ${GENERATED_SRC}/configvalues.h
Packit Service 50c9f2
    ${GENERATED_SRC}/configimpl.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/configoptions.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/configvalues.cpp
Packit Service 50c9f2
    portable.cpp
Packit Service 50c9f2
    portable_c.c
Packit Service 50c9f2
)
Packit Service 50c9f2
Packit Service 50c9f2
add_library(_doxygen STATIC
Packit Service 50c9f2
    # custom generated files
Packit Service 50c9f2
    ${GENERATED_SRC}/lang_cfg.h
Packit Service 50c9f2
    ${GENERATED_SRC}/settings.h
Packit Service 50c9f2
    ${GENERATED_SRC}/layout_default.xml.h
Packit Service 50c9f2
    ${GENERATED_SRC}/version.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/ce_parse.h
Packit Service 50c9f2
    ${GENERATED_SRC}/configvalues.h
Packit Service 50c9f2
    ${GENERATED_SRC}/resources.cpp
Packit Service 50c9f2
    # generated by flex/bison
Packit Service 50c9f2
    ${GENERATED_SRC}/scanner.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/code.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/pyscanner.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/pycode.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/fortranscanner.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/fortrancode.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/vhdlcode.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/tclscanner.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/pre.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/declinfo.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/defargs.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/doctokenizer.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/commentcnv.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/commentscan.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/constexp.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/xmlcode.cpp
Packit Service 50c9f2
    ${GENERATED_SRC}/sqlcode.cpp
Packit Service 50c9f2
    #
Packit Service 50c9f2
    ${GENERATED_SRC}/ce_parse.cpp
Packit Service 50c9f2
    #
Packit Service 50c9f2
    plantuml.cpp
Packit Service 50c9f2
    arguments.cpp
Packit Service 50c9f2
    cite.cpp
Packit Service 50c9f2
    clangparser.cpp
Packit Service 50c9f2
    fileparser.cpp
Packit Service 50c9f2
    classdef.cpp
Packit Service 50c9f2
    classlist.cpp
Packit Service 50c9f2
    cmdmapper.cpp
Packit Service 50c9f2
    condparser.cpp
Packit Service 50c9f2
    context.cpp
Packit Service 50c9f2
    cppvalue.cpp
Packit Service 50c9f2
    debug.cpp
Packit Service 50c9f2
    defgen.cpp
Packit Service 50c9f2
    define.cpp
Packit Service 50c9f2
    definition.cpp
Packit Service 50c9f2
    diagram.cpp
Packit Service 50c9f2
    dirdef.cpp
Packit Service 50c9f2
    docparser.cpp
Packit Service 50c9f2
    docsets.cpp
Packit Service 50c9f2
    dot.cpp
Packit Service 50c9f2
    doxygen.cpp
Packit Service 50c9f2
    eclipsehelp.cpp
Packit Service 50c9f2
    entry.cpp
Packit Service 50c9f2
    filedef.cpp
Packit Service 50c9f2
    filename.cpp
Packit Service 50c9f2
    formula.cpp
Packit Service 50c9f2
    ftextstream.cpp
Packit Service 50c9f2
    ftvhelp.cpp
Packit Service 50c9f2
    groupdef.cpp
Packit Service 50c9f2
    htags.cpp
Packit Service 50c9f2
    htmldocvisitor.cpp
Packit Service 50c9f2
    htmlentity.cpp
Packit Service 50c9f2
    resourcemgr.cpp
Packit Service 50c9f2
    htmlgen.cpp
Packit Service 50c9f2
    htmlhelp.cpp
Packit Service 50c9f2
    image.cpp
Packit Service 50c9f2
    index.cpp
Packit Service 50c9f2
    language.cpp
Packit Service 50c9f2
    latexdocvisitor.cpp
Packit Service 50c9f2
    latexgen.cpp
Packit Service 50c9f2
    layout.cpp
Packit Service 50c9f2
    lodepng.cpp
Packit Service 50c9f2
    logos.cpp
Packit Service 50c9f2
    mandocvisitor.cpp
Packit Service 50c9f2
    mangen.cpp
Packit Service 50c9f2
    sqlite3gen.cpp
Packit Service 50c9f2
    markdown.cpp
Packit Service 50c9f2
    marshal.cpp
Packit Service 50c9f2
    memberdef.cpp
Packit Service 50c9f2
    membergroup.cpp
Packit Service 50c9f2
    memberlist.cpp
Packit Service 50c9f2
    membername.cpp
Packit Service 50c9f2
    message.cpp
Packit Service 50c9f2
    msc.cpp
Packit Service 50c9f2
    dia.cpp
Packit Service 50c9f2
    namespacedef.cpp
Packit Service 50c9f2
    objcache.cpp
Packit Service 50c9f2
    outputgen.cpp
Packit Service 50c9f2
    outputlist.cpp
Packit Service 50c9f2
    pagedef.cpp
Packit Service 50c9f2
    perlmodgen.cpp
Packit Service 50c9f2
    qhp.cpp
Packit Service 50c9f2
    qhpxmlwriter.cpp
Packit Service 50c9f2
    reflist.cpp
Packit Service 50c9f2
    rtfdocvisitor.cpp
Packit Service 50c9f2
    rtfgen.cpp
Packit Service 50c9f2
    rtfstyle.cpp
Packit Service 50c9f2
    searchindex.cpp
Packit Service 50c9f2
    store.cpp
Packit Service 50c9f2
    tagreader.cpp
Packit Service 50c9f2
    template.cpp
Packit Service 50c9f2
    textdocvisitor.cpp
Packit Service 50c9f2
    tooltip.cpp
Packit Service 50c9f2
    util.cpp
Packit Service 50c9f2
    vhdldocgen.cpp
Packit Service 50c9f2
    vhdljjparser.cpp
Packit Service 50c9f2
    xmldocvisitor.cpp
Packit Service 50c9f2
    xmlgen.cpp
Packit Service 50c9f2
    docbookvisitor.cpp
Packit Service 50c9f2
    docbookgen.cpp
Packit Service 50c9f2
)
Packit Service 50c9f2
Packit Service 50c9f2
add_executable(doxygen main.cpp)
Packit Service 50c9f2
Packit Service 50c9f2
if (use_libclang)
Packit Service 50c9f2
    find_package(LLVM REQUIRED CONFIG)
Packit Service 50c9f2
    find_package(Clang REQUIRED CONFIG)
Packit Service 50c9f2
    if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Packit Service 50c9f2
        cmake_minimum_required(VERSION 3.1)
Packit Service 50c9f2
        target_compile_features(_doxygen PRIVATE cxx_alignof)
Packit Service 50c9f2
        target_compile_features(doxygen PRIVATE cxx_alignof)
Packit Service 50c9f2
        target_compile_options(_doxygen PRIVATE -stdlib=libc++)
Packit Service 50c9f2
        target_compile_options(doxygen PRIVATE -stdlib=libc++)
Packit Service 50c9f2
    elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
Packit Service 50c9f2
        target_compile_options(_doxygen PRIVATE -std=c++11)
Packit Service 50c9f2
        target_compile_options(doxygen PRIVATE -std=c++11)
Packit Service 50c9f2
    endif()
Packit Service 50c9f2
    include_directories(${LLVM_INCLUDE_DIRS})
Packit Service 50c9f2
    add_definitions(${LLVM_DEFINITIONS})
Packit Service 50c9f2
    llvm_map_components_to_libnames(llvm_libs support core option)
Packit Service 50c9f2
    target_compile_definitions(doxygen PRIVATE ${LLVM_DEFINITIONS})
Packit Service 50c9f2
    set(CLANG_LIBS libclang clangTooling ${llvm_libs})
Packit Service 50c9f2
endif()
Packit Service 50c9f2
Packit Service 50c9f2
target_link_libraries(doxygen
Packit Service 50c9f2
    _doxygen
Packit Service 50c9f2
    doxycfg
Packit Service 50c9f2
    qtools
Packit Service 50c9f2
    md5
Packit Service 50c9f2
    vhdlparser
Packit Service 50c9f2
    ${SQLITE3_LIBRARIES}
Packit Service 50c9f2
    ${ICONV_LIBRARIES}
Packit Service 50c9f2
    ${CMAKE_THREAD_LIBS_INIT}
Packit Service 50c9f2
    ${EXTRA_LIBS}
Packit Service 50c9f2
    ${CLANG_LIBS}
Packit Service 50c9f2
)
Packit Service 50c9f2
Packit Service 50c9f2
install(TARGETS doxygen DESTINATION bin)