0907d23909d4a37c77d3205bb13dc7f506fa8795
[platform/upstream/doxygen.git] / addon / doxywizard / CMakeLists.txt
1 # search for Qt5
2 if (NOT force_qt4)
3   find_package(Qt5Core QUIET CONFIG)
4   if (Qt5Core_FOUND)
5     message(STATUS "Using Qt5")
6     find_package(Qt5 COMPONENTS Widgets Gui Xml)
7     macro(qt_use_modules)
8         qt5_use_modules(${ARGN})
9     endmacro()
10     macro(qt_wrap_cpp)
11         qt5_wrap_cpp(${ARGN})
12     endmacro()
13     macro(qt_add_resources)
14         qt5_add_resources(${ARGN})
15     endmacro()
16   endif()
17 endif()
18 # fallback to Qt4
19 if (NOT Qt5Core_FOUND)
20   if (NOT force_qt4)
21     message(STATUS "Qt5 not found, searching for Qt4 instead...")
22   else()
23     message(STATUS "Using Qt4")
24   endif()
25   find_package(Qt4 REQUIRED COMPONENTS QtCore QtXml QtGui)
26   macro(qt_use_modules)
27   endmacro()
28   macro(qt_wrap_cpp)
29       qt4_wrap_cpp(${ARGN})
30   endmacro()
31   macro(qt_add_resources)
32       qt4_add_resources(${ARGN})
33   endmacro()
34 endif()
35
36 include_directories(
37         .
38         ${CMAKE_SOURCE_DIR}/src
39         ${CMAKE_SOURCE_DIR}/qtools
40         ${GENERATED_SRC}
41 )
42
43 set(GENERATED_SRC_WIZARD ${GENERATED_SRC}/doxywizard)
44 file(MAKE_DIRECTORY ${GENERATED_SRC_WIZARD})
45
46 add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DUNICODE)
47 if (NOT Qt5Core_FOUND)
48   include(${QT_USE_FILE})
49 endif()
50
51 # generate settings.h
52 file(GENERATE OUTPUT ${GENERATED_SRC_WIZARD}/settings.h
53 CONTENT "#ifndef SETTINGS_H
54 #define SETTINGS_H
55 #define USE_SQLITE3 ${sqlite3}
56 #define USE_LIBCLANG ${clang}
57 #define IS_SUPPORTED(x) \\
58   ((USE_SQLITE3  && strcmp(\"USE_SQLITE3\",(x))==0)  || \\
59    (USE_LIBCLANG && strcmp(\"USE_LIBCLANG\",(x))==0) || \\
60   0)
61 #endif" )
62 set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERATED 1)
63
64 # generate version.cpp
65 file(GENERATE OUTPUT ${GENERATED_SRC_WIZARD}/version.cpp
66     CONTENT "char versionString[]=\"${VERSION}\";"
67 )
68 set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENERATED 1)
69
70 # generate configdoc.cpp
71 add_custom_command(
72 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -wiz ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp
73 OUTPUT ${GENERATED_SRC_WIZARD}/configdoc.cpp
74 )
75 set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GENERATED 1)
76
77 FLEX_TARGET(config_doxyw config_doxyw.l ${GENERATED_SRC_WIZARD}/config_doxyw.cpp COMPILE_FLAGS "${LEX_FLAGS}")
78
79 qt_wrap_cpp(doxywizard_MOC
80 doxywizard.h
81 expert.h
82 helplabel.h
83 inputint.h
84 inputbool.h
85 inputstring.h
86 inputstrlist.h
87 wizard.h
88 )
89
90 qt_add_resources(doxywizard_RESOURCES_RCC doxywizard.qrc)
91
92 add_executable(doxywizard WIN32
93 doxywizard.cpp
94 expert.cpp
95 wizard.cpp
96 inputbool.cpp
97 inputstring.cpp
98 inputint.cpp
99 inputstrlist.cpp
100 ${GENERATED_SRC_WIZARD}/settings.h
101 ${GENERATED_SRC_WIZARD}/version.cpp
102 ${GENERATED_SRC_WIZARD}/config_doxyw.cpp
103 ${GENERATED_SRC_WIZARD}/configdoc.cpp
104 ${doxywizard_MOC}
105 ${doxywizard_RESOURCES_RCC}
106 )
107 qt_use_modules(doxywizard Core Gui Widgets Xml)
108 target_link_libraries(doxywizard
109 ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY}
110 )
111
112 install(TARGETS doxywizard DESTINATION bin)