CMakeLists.txt
162 lines
| 4.1 KiB
| text/plain
|
CMakeLexer
/ generator / CMakeLists.txt
florianlink
|
r202 | 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) | ||||