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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
cmake_minimum_required(VERSION 2.8)
#-----------------------------------------------------------------------------
project(PythonQtGenerator)
#-----------------------------------------------------------------------------
include(CTestUseLaunchers OPTIONAL)
#-----------------------------------------------------------------------------
# Setup Qt
set(minimum_required_qt_version "4.6.2")
find_package(Qt4)
if(QT4_FOUND)
set(found_qt_version ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH})
if(${found_qt_version} VERSION_LESS ${minimum_required_qt_version})
message(FATAL_ERROR "error: PythonQt requires Qt >= ${minimum_required_qt_version} -- you cannot use Qt ${found_qt_version}.")
endif()
set(QT_USE_QTXML ON)
include(${QT_USE_FILE})
else()
message(FATAL_ERROR "error: Qt4 was not found on your system. You probably need to set the QT_QMAKE_EXECUTABLE variable")
endif()
#-----------------------------------------------------------------------------
# Sources
set(sources
parser/ast.cpp
parser/binder.cpp
parser/class_compiler.cpp
parser/codemodel.cpp
parser/codemodel_finder.cpp
parser/compiler_utils.cpp
parser/control.cpp
parser/declarator_compiler.cpp
parser/default_visitor.cpp
parser/dumptree.cpp
parser/lexer.cpp
parser/list.cpp
parser/name_compiler.cpp
parser/parser.cpp
parser/smallobject.cpp
parser/tokens.cpp
parser/type_compiler.cpp
parser/visitor.cpp
abstractmetabuilder.cpp
abstractmetalang.cpp
asttoxml.cpp
customtypes.cpp
fileout.cpp
generator.cpp
generatorset.cpp
generatorsetqtscript.cpp
main.cpp
metajava.cpp
metaqtscriptbuilder.cpp
metaqtscript.cpp
prigenerator.cpp
reporthandler.cpp
setupgenerator.cpp
shellgenerator.cpp
shellheadergenerator.cpp
shellimplgenerator.cpp
typeparser.cpp
typesystem.cpp
)
#-----------------------------------------------------------------------------
# List headers. This list is used for the install command.
set(headers
)
#-----------------------------------------------------------------------------
# Headers that should run through moc
set(moc_sources
fileout.h
generator.h
generatorset.h
generatorsetqtscript.h
prigenerator.h
setupgenerator.h
shellgenerator.h
shellheadergenerator.h
shellimplgenerator.h
)
#-----------------------------------------------------------------------------
# UI files
set(ui_sources )
#-----------------------------------------------------------------------------
# Resources
set(qrc_sources
generator.qrc
)
#-----------------------------------------------------------------------------
# Do wrapping
qt4_wrap_cpp(gen_moc_sources ${moc_sources})
qt4_wrap_ui(gen_ui_sources ${ui_sources})
qt4_add_resources(gen_qrc_sources ${qrc_sources})
#-----------------------------------------------------------------------------
# Copy file expected by the generator and specify install rules
file(GLOB files_to_copy RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "build_*.txt" "typesystem_*.xml")
list(APPEND files_to_copy qtscript_masterinclude.h parser/rpp/pp-qt-configuration)
foreach(file ${files_to_copy})
configure_file(
${file}
${CMAKE_CURRENT_BINARY_DIR}/${file}
COPYONLY
)
get_filename_component(destination_dir ${file} PATH)
install(FILES ${file} DESTINATION bin/${destination_dir})
endforeach()
#-----------------------------------------------------------------------------
# Build the library
SOURCE_GROUP("Resources" FILES
${qrc_sources}
${ui_sources}
${files_to_copy}
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/parser
${CMAKE_CURRENT_SOURCE_DIR}/parser/rpp
)
add_definitions(-DRXX_ALLOCATOR_INIT_0)
add_executable(${PROJECT_NAME}
${sources}
${gen_moc_sources}
${gen_ui_sources}
${gen_qrc_sources}
)
target_link_libraries(${PROJECT_NAME} ${QT_LIBRARIES})
#-----------------------------------------------------------------------------
# Install library (on windows, put the dll in 'bin' and the archive in 'lib')
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
|