Mercurial > projects > qtd
diff generator/CMakeLists.txt @ 4:0a29ce1ae854
CMake build script.
Small fixes in examples.
author | SokoL_SD |
---|---|
date | Wed, 13 May 2009 19:01:55 +0000 |
parents | |
children | b8a79f9fba5a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generator/CMakeLists.txt Wed May 13 19:01:55 2009 +0000 @@ -0,0 +1,224 @@ +PROJECT(generator CXX C) +cmake_minimum_required(VERSION 2.6) +FIND_PACKAGE(Qt4 REQUIRED) + +## Sources +set(srcs + classlistgenerator.cpp + cppgenerator.cpp + cppheadergenerator.cpp + cppimplgenerator.cpp + docparser.cpp + generatorsetd.cpp + dgenerator.cpp + jumptable.cpp + metainfogenerator.cpp + metajavabuilder.cpp + qdocgenerator.cpp + uiconverter.cpp + containergenerator.cpp + + generator.cpp + main.cpp + reporthandler.cpp + typeparser.cpp + typesystem.cpp + asttoxml.cpp + fileout.cpp + generatorset.cpp + metajava.cpp + customtypes.cpp + abstractmetabuilder.cpp + abstractmetalang.cpp + prigenerator.cpp + + # rxx + parser/ast.cpp + parser/lexer.cpp + parser/list.cpp + parser/parser.cpp + parser/smallobject.cpp + parser/control.cpp + parser/visitor.cpp + parser/default_visitor.cpp + parser/dumptree.cpp + parser/tokens.cpp + parser/binder.cpp + parser/codemodel.cpp + parser/type_compiler.cpp + parser/name_compiler.cpp + parser/declarator_compiler.cpp + parser/class_compiler.cpp + parser/codemodel_finder.cpp + parser/compiler_utils.cpp + + ## rpp + parser/rpp/preprocessor.cpp +) +## Moc headers +set(moc_hdrs + classlistgenerator.h + cppgenerator.h + cppheadergenerator.h + cppimplgenerator.h + docparser.h + generatorsetd.h + dgenerator.h + jumptable.h + metainfogenerator.h + metajavabuilder.h + qdocgenerator.h + uiconverter.h + containergenerator.h + generator.h + main.h + reporthandler.h + typeparser.h + typesystem.h + asttoxml.h + fileout.h + generatorset.h + metajava.h + customtypes.h + abstractmetabuilder.h + abstractmetalang.h + prigenerator.h + + ## rxx + parser/ast.h + parser/lexer.h + parser/list.h + parser/parser.h + parser/rxx_allocator.h + parser/rpp-allocator.h + parser/smallobject.h + parser/tokens.h + parser/symbol.h + parser/control.h + parser/visitor.h + parser/default_visitor.h + parser/dumptree.h + parser/binder.h + parser/codemodel.h + parser/codemodel_pointer.h + parser/codemodel_fwd.h + parser/type_compiler.h + parser/name_compiler.h + parser/declarator_compiler.h + parser/class_compiler.h + parser/codemodel_finder.h + parser/compiler_utils.h + + # rpp + parser/rpp/pp-cctype.h + parser/rpp/pp-engine-bits.h + parser/rpp/pp-engine.h + parser/rpp/pp-environment.h + parser/rpp/pp-fwd.h + parser/rpp/pp-internal.h + parser/rpp/pp-iterator.h + parser/rpp/pp-macro-expander.h + parser/rpp/pp-macro.h + parser/rpp/pp-scanner.h + parser/rpp/pp-string.h + parser/rpp/pp-symbol.h + parser/rpp/pp.h + parser/rpp/preprocessor.h + +) + +## Resources. +set(res_files + generator.qrc +) + +#win32-msvc2005:{ +# QMAKE_CXXFLAGS += -wd4996 +# QMAKE_CFLAGS += -wd4996 +#} + +#win32-msvc.net { +# QMAKE_CXXFLAGS += /Zm500 +# QMAKE_CXXFLAGS -= -Zm200 +# QMAKE_CFLAGS -= -Zm200 +#} + +## Includes path. +set(inc_paths + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/../common + ${CMAKE_CURRENT_SOURCE_DIR}/parser + ${CMAKE_CURRENT_SOURCE_DIR}/parser/include + ${CMAKE_CURRENT_SOURCE_DIR}/parser/rpp +) + +add_definitions(-DRXX_ALLOCATOR_INIT_0) + +## Build project +find_package (Qt4 REQUIRED) +set (QT_USE_QTMAIN true) +set (QT_USE_QTGUI false) +set (QT_USE_QTXML true) +include(${QT_USE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}) + +set(inc_paths + ${inc_paths} + ${QT_INCLUDES} +) +set(lib_paths + ${lib_paths} + ${QT_LIBRARY_DIR} +) +set(libs + ${QT_LIBRARIES} +) + +qt4_wrap_cpp(moc_srcs ${moc_hdrs}) +qt4_add_resources(res_wrapped_files ${res_files}) + +set (all_srcs + ${srcs} ${moc_srcs} + ${res_wrapped_files}) +include_directories(${inc_paths}) +add_executable(generator ${all_srcs} ) +target_link_libraries(generator ${libs}) + +foreach(package ${packages}) + set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml) +endforeach(package ${packages}) + +MACRO(MAKE_WINDOWS_PATH pathname) + # An extra \\ escape is necessary to get a \ through CMake's processing. + STRING(REPLACE "/" "\\" ${pathname} "${${pathname}}") + # Enclose with UNESCAPED quotes. This means we need to escape our + # quotes once here, i.e. with \" + SET(${pathname} \"${${pathname}}\") +ENDMACRO(MAKE_WINDOWS_PATH) + +foreach(package ${packages}) + set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri) + break(package ${packages}) +endforeach(package ${packages}) + +add_custom_command(OUTPUT ${dgen_impl} + COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl} + COMMAND "generator" + ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=../ + --source-directory=${CMAKE_SOURCE_DIR}/generator + qtjambi_masterinclude.h + build_opengl.txt + COMMENT "Generating binding..." + DEPENDS generator ${gen_sources} + ) +add_custom_target(dgen DEPENDS ${dgen_impl} COMMENT "") + +macro(add_sources_for_generating) + foreach(source ${ARGN}) + add_custom_command(OUTPUT "${source}" + COMMAND "" + ARGS "" + DEPENDS ${dgen_impl} + COMMENT "" + ) + endforeach(source ${allcppsources}) +endmacro(add_sources_for_generating) \ No newline at end of file