1 # vim:ts=4:sw=4:expandtab:autoindent:
4 ${CMAKE_SOURCE_DIR}/qtools
5 ${CMAKE_SOURCE_DIR}/libmd5
6 ${CMAKE_SOURCE_DIR}/vhdlparser/
7 ${CMAKE_SOURCE_DIR}/src
13 file(MAKE_DIRECTORY ${GENERATED_SRC})
14 file(GLOB LANGUAGE_FILES "${CMAKE_SOURCE_DIR}/src/translator_??.h")
16 # instead of increasebuffer.py
17 add_definitions(-DYY_BUF_SIZE=262144 -DYY_READ_BUF_SIZE=262144)
20 file(GENERATE OUTPUT ${GENERATED_SRC}/settings.h
21 CONTENT "#ifndef SETTINGS_H
23 #define USE_SQLITE3 ${sqlite3}
24 #define USE_LIBCLANG ${clang}
25 #define IS_SUPPORTED(x) \\
26 ((USE_SQLITE3 && strcmp(\"USE_SQLITE3\",(x))==0) || \\
27 (USE_LIBCLANG && strcmp(\"USE_LIBCLANG\",(x))==0) || \\
30 set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
33 # generate version.cpp
34 file(GENERATE OUTPUT ${GENERATED_SRC}/version.cpp
35 CONTENT "char versionString[]=\"${VERSION}\";"
37 set_source_files_properties(${GENERATED_SRC}/version.cpp PROPERTIES GENERATED 1)
41 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
42 DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
43 OUTPUT ${GENERATED_SRC}/configvalues.h
45 set_source_files_properties(${GENERATED_SRC}/configvalues.h PROPERTIES GENERATED 1)
49 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
50 DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
51 OUTPUT ${GENERATED_SRC}/configvalues.cpp
53 set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERATED 1)
57 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
58 DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
59 OUTPUT ${GENERATED_SRC}/configoptions.cpp
61 set_source_files_properties(${GENERATED_SRC}/configoptions.cpp PROPERTIES GENERATED 1)
66 COMMAND ${BISON_EXECUTABLE} -l -d -p ce_parsexpYY ${CMAKE_SOURCE_DIR}/src/constexp.y -o ce_parse.c
67 DEPENDS ${CMAKE_SOURCE_DIR}/src/constexp.y
68 OUTPUT ${GENERATED_SRC}/ce_parse.h
69 WORKING_DIRECTORY ${GENERATED_SRC}
71 set_source_files_properties(${GENERATED_SRC}/ce_parse.h PROPERTIES GENERATED 1)
75 COMMENT "Generating ${GENERATED_SRC}/lang_cfg.h"
76 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/lang_cfg.cmake ${GENERATED_SRC}/lang_cfg.h ${LANG_CODES}
77 DEPENDS ${LANGUAGE_FILES}
78 OUTPUT ${GENERATED_SRC}/lang_cfg.h
80 set_source_files_properties(${GENERATED_SRC}/lang_cfg.h PROPERTIES GENERATED 1)
83 file(GLOB RESOURCES ${CMAKE_SOURCE_DIR}/templates/*/*)
87 COMMENT "Generating ${GENERATED_SRC}/resources.cpp"
88 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
90 OUTPUT ${GENERATED_SRC}/resources.cpp
92 set_source_files_properties(${GENERATED_SRC}/resources.cpp PROPERTIES GENERATED 1)
96 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
97 DEPENDS ${CMAKE_SOURCE_DIR}/src/layout_default.xml
98 OUTPUT ${GENERATED_SRC}/layout_default.xml.h
100 set_source_files_properties(${GENERATED_SRC}/layout_default.xml.h PROPERTIES GENERATED 1)
102 # Targets for flex/bison generated files
103 FLEX_TARGET(scanner scanner.l ${GENERATED_SRC}/scanner.cpp COMPILE_FLAGS "${LEX_FLAGS}")
104 FLEX_TARGET(code code.l ${GENERATED_SRC}/code.cpp COMPILE_FLAGS "${LEX_FLAGS}")
105 FLEX_TARGET(pyscanner pyscanner.l ${GENERATED_SRC}/pyscanner.cpp COMPILE_FLAGS "${LEX_FLAGS}")
106 FLEX_TARGET(pycode pycode.l ${GENERATED_SRC}/pycode.cpp COMPILE_FLAGS "${LEX_FLAGS}")
107 FLEX_TARGET(fortranscanner fortranscanner.l ${GENERATED_SRC}/fortranscanner.cpp COMPILE_FLAGS "${LEX_FLAGS}")
108 FLEX_TARGET(fortrancode fortrancode.l ${GENERATED_SRC}/fortrancode.cpp COMPILE_FLAGS "${LEX_FLAGS}")
109 FLEX_TARGET(vhdlcode vhdlcode.l ${GENERATED_SRC}/vhdlcode.cpp COMPILE_FLAGS "${LEX_FLAGS}")
110 FLEX_TARGET(tclscanner tclscanner.l ${GENERATED_SRC}/tclscanner.cpp COMPILE_FLAGS "${LEX_FLAGS}")
111 FLEX_TARGET(pre pre.l ${GENERATED_SRC}/pre.cpp COMPILE_FLAGS "${LEX_FLAGS}")
112 FLEX_TARGET(declinfo declinfo.l ${GENERATED_SRC}/declinfo.cpp COMPILE_FLAGS "${LEX_FLAGS}")
113 FLEX_TARGET(defargs defargs.l ${GENERATED_SRC}/defargs.cpp COMPILE_FLAGS "${LEX_FLAGS}")
114 FLEX_TARGET(doctokenizer doctokenizer.l ${GENERATED_SRC}/doctokenizer.cpp COMPILE_FLAGS "${LEX_FLAGS}")
115 FLEX_TARGET(commentcnv commentcnv.l ${GENERATED_SRC}/commentcnv.cpp COMPILE_FLAGS "${LEX_FLAGS}")
116 FLEX_TARGET(commentscan commentscan.l ${GENERATED_SRC}/commentscan.cpp COMPILE_FLAGS "${LEX_FLAGS}")
117 FLEX_TARGET(constexp constexp.l ${GENERATED_SRC}/constexp.cpp COMPILE_FLAGS "${LEX_FLAGS}")
118 FLEX_TARGET(xmlcode xmlcode.l ${GENERATED_SRC}/xmlcode.cpp COMPILE_FLAGS "${LEX_FLAGS}")
119 FLEX_TARGET(sqlcode sqlcode.l ${GENERATED_SRC}/sqlcode.cpp COMPILE_FLAGS "${LEX_FLAGS}")
120 FLEX_TARGET(configimpl configimpl.l ${GENERATED_SRC}/configimpl.cpp COMPILE_FLAGS "${LEX_FLAGS}")
122 BISON_TARGET(constexp constexp.y ${GENERATED_SRC}/ce_parse.cpp COMPILE_FLAGS "${YACC_FLAGS}")
124 add_library(doxycfg STATIC
125 ${GENERATED_SRC}/lang_cfg.h
126 ${GENERATED_SRC}/configvalues.h
127 ${GENERATED_SRC}/configimpl.cpp
128 ${GENERATED_SRC}/configoptions.cpp
129 ${GENERATED_SRC}/configvalues.cpp
134 add_library(_doxygen STATIC
135 # custom generated files
136 ${GENERATED_SRC}/lang_cfg.h
137 ${GENERATED_SRC}/settings.h
138 ${GENERATED_SRC}/layout_default.xml.h
139 ${GENERATED_SRC}/version.cpp
140 ${GENERATED_SRC}/ce_parse.h
141 ${GENERATED_SRC}/configvalues.h
142 ${GENERATED_SRC}/resources.cpp
143 # generated by flex/bison
144 ${GENERATED_SRC}/scanner.cpp
145 ${GENERATED_SRC}/code.cpp
146 ${GENERATED_SRC}/pyscanner.cpp
147 ${GENERATED_SRC}/pycode.cpp
148 ${GENERATED_SRC}/fortranscanner.cpp
149 ${GENERATED_SRC}/fortrancode.cpp
150 ${GENERATED_SRC}/vhdlcode.cpp
151 ${GENERATED_SRC}/tclscanner.cpp
152 ${GENERATED_SRC}/pre.cpp
153 ${GENERATED_SRC}/declinfo.cpp
154 ${GENERATED_SRC}/defargs.cpp
155 ${GENERATED_SRC}/doctokenizer.cpp
156 ${GENERATED_SRC}/commentcnv.cpp
157 ${GENERATED_SRC}/commentscan.cpp
158 ${GENERATED_SRC}/constexp.cpp
159 ${GENERATED_SRC}/xmlcode.cpp
160 ${GENERATED_SRC}/sqlcode.cpp
162 ${GENERATED_SRC}/ce_parse.cpp
247 add_executable(doxygen main.cpp)
250 find_package(LLVM REQUIRED CONFIG)
251 find_package(Clang REQUIRED CONFIG)
252 if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
253 cmake_minimum_required(VERSION 3.1)
254 target_compile_features(_doxygen PRIVATE cxx_alignof)
255 target_compile_features(doxygen PRIVATE cxx_alignof)
256 target_compile_options(_doxygen PRIVATE -stdlib=libc++)
257 target_compile_options(doxygen PRIVATE -stdlib=libc++)
258 elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
259 target_compile_options(_doxygen PRIVATE -std=c++11)
260 target_compile_options(doxygen PRIVATE -std=c++11)
262 include_directories(${LLVM_INCLUDE_DIRS})
263 add_definitions(${LLVM_DEFINITIONS})
264 llvm_map_components_to_libnames(llvm_libs support core option)
265 target_compile_definitions(doxygen PRIVATE ${LLVM_DEFINITIONS})
266 set(CLANG_LIBS libclang clangTooling ${llvm_libs})
269 target_link_libraries(doxygen
277 ${CMAKE_THREAD_LIBS_INIT}
282 install(TARGETS doxygen DESTINATION bin)