##// END OF EJS Templates
improved wrapper check to avoid crashes on virtual methods while python object gets deleted...
improved wrapper check to avoid crashes on virtual methods while python object gets deleted git-svn-id: svn://svn.code.sf.net/p/pythonqt/code/trunk@245 ea8d5007-eb21-0410-b261-ccb3ea6e24a9

File last commit:

r202:ca58bd51b222
r204:7ce280c51c17
Show More
CMakeLists.txt
162 lines | 4.1 KiB | text/plain | CMakeLexer
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)