Mercurial > projects > qtd
view generator/CMakeLists.txt @ 282:256ab6cb8e85
Signals look-up andNew syntax for connect. The old one will not work from now on. This will allow for the signals overload. Although changes are done for both D1 and D2 versions, D1 won't work because of compiler bugs. I am tired of waiting for fixes.
author | eldar |
---|---|
date | Fri, 16 Oct 2009 02:43:59 +0000 |
parents | 5134552d97f6 |
children | b61a413fc2f5 |
line wrap: on
line source
PROJECT(generator CXX C) cmake_minimum_required(VERSION 2.6) FIND_PACKAGE(Qt4 REQUIRED) ## Hack for msvc: force Release settings STRING(TOUPPER "${CMAKE_BUILD_TYPE}" build_type_upper) set(CMAKE_CXX_FLAGS_${build_type_upper} ${CMAKE_CXX_FLAGS_RELEASE}) get_property(dir_prop DIRECTORY PROPERTY COMPILE_DEFINITIONS_RELEASE) set_property(DIRECTORY PROPERTY COMPILE_DEFINITIONS_${build_type_upper} ${dir_prop}) ## 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 #} #if(MSVC) # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm500 /Zc:wchar_t-") #endif(MSVC) #win32-msvc.net { # QMAKE_CXXFLAGS += /Zm500 # QMAKE_CXXFLAGS -= -Zm200 # QMAKE_CFLAGS -= -Zm200 #} ## Includes path. set(inc_paths ${CMAKE_CURRENT_SOURCE_DIR}/../common ${CMAKE_CURRENT_SOURCE_DIR}/parser ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/parser/rpp #${CMAKE_CURRENT_SOURCE_DIR}/parser/include ) 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}) ## TODO: Precompilated header works well, but I don't know a license of PCHSupport_26.cmake which ## was downloaded from http://www.vtk.org/Bug/view.php?id=1260. #OPTION(USEPCH "Build the project with precompiled-headers" ON) #include(../cmake/PCHSupport_26.cmake) # #IF(NOT USEPCH) # MESSAGE(STATUS "NOT using precompiled-header") #ELSE(NOT USEPCH) # MESSAGE(STATUS "Using precompiled-header") # add_precompiled_header(generator ${CMAKE_CURRENT_SOURCE_DIR}/generator_pch.h) #ENDIF(NOT USEPCH) set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt) set(jambi_inc ${CMAKE_BINARY_DIR}/CMakeFiles/qtjambi_masterinclude.h) if( NOT "${packages_in_build_txt}" STREQUAL "${packages}" OR NOT EXISTS ${dgen_build_conf} OR NOT EXISTS ${jambi_inc}) file(REMOVE ${dgen_build_conf}) file(REMOVE ${jambi_inc}) file(APPEND ${dgen_build_conf} "<typesystem>\n") foreach(package_normal ${packages}) string(TOLOWER ${package_normal} package) string(TOUPPER ${package_normal} package_upper) file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n") message(STATUS "QT_${package_upper}_INCLUDE_DIR ${QT_${package_upper}_INCLUDE_DIR}") file(APPEND ${jambi_inc} "#include <${QT_QT${package_upper}_INCLUDE_DIR}/Qt${package_normal}>\n") endforeach(package_normal ${packages}) file(APPEND ${dgen_build_conf} "</typesystem>\n") set(packages_in_build_txt ${packages} CACHE INTERNAL "") endif( NOT "${packages_in_build_txt}" STREQUAL "${packages}" OR NOT EXISTS ${dgen_build_conf} OR NOT EXISTS ${jambi_inc}) set(gen_sources) foreach(package_normal ${packages}) string(TOLOWER ${package_normal} package) set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml) set(d_inc_file_found d_inc_file_found-NOTFOUND) find_file(d_inc_file_found typesystem_${package}-java.java PATHS ${CMAKE_SOURCE_DIR}/generator/) if(d_inc_file_found) set(gen_sources ${gen_sources} ${d_inc_file_found}) endif(d_inc_file_found) endforeach(package_normal ${packages}) mark_as_advanced(d_inc_file_found) set(d_inc_file_found 1) if(CMAKE_HOST_WIN32) set(sep ";") else(CMAKE_HOST_WIN32) set(sep ":") endif(CMAKE_HOST_WIN32) foreach(path ${QT_INCLUDES}) set(inc_paths ${path}${sep}) endforeach(path ${QT_INCLUDES}) if(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) set(out_dir ${CMAKE_SOURCE_DIR}) else(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) set(out_dir ${CMAKE_BINARY_DIR}/build) endif(${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) set(dgen_impl ${out_dir}/cpp/qt_core/ArrayOps_shell.cpp) add_custom_command(OUTPUT ${dgen_impl} COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl} COMMAND "generator" ARGS ${GEN_OPT} --include-paths=${inc_paths} --output-directory=${out_dir} --source-directory=${CMAKE_SOURCE_DIR}/generator ${CMAKE_BINARY_DIR}/CMakeFiles/qtjambi_masterinclude.h ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt COMMENT "Generating binding..." DEPENDS generator ${gen_sources} ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt ) add_custom_target(dgen ALL DEPENDS ${dgen_impl} COMMENT "")