# HG changeset patch # User SokoL_SD # Date 1252337011 0 # Node ID 6cd923119ab1343616f9a5f3503f510b11bd3482 # Parent da7c867ef2efb46aa07f4e91ae8e2116a2a74801 Another attempt for supporting MacOS. Now qtjambi_masterinclude.h is generated in the cmake script and contains absolute paths. See, http://www.dsource.org/forums/viewtopic.php?t=4745&sid=2657de5e8bc30456762ad8a4990afeed diff -r da7c867ef2ef -r 6cd923119ab1 CMakeLists.txt --- a/CMakeLists.txt Mon Sep 07 11:37:16 2009 +0000 +++ b/CMakeLists.txt Mon Sep 07 15:23:31 2009 +0000 @@ -95,7 +95,7 @@ string(TOUPPER ${package_big} package_upper) option(BUILD_QT_${package_upper} "Build Qt${package_big}" "ON") if(BUILD_QT_${package_upper}) - set(packages ${packages} ${package}) + set(packages ${packages} ${package_big}) endif(BUILD_QT_${package_upper}) endforeach(package_big ${all_packages}) @@ -352,7 +352,6 @@ include (${CMAKE_SOURCE_DIR}/build/${package}.txt) set(all_req_found 1) - string(TOUPPER ${package} package_upper) if(BUILD_QT_${package_upper}) foreach(req ${required}) set(req_found) @@ -389,8 +388,11 @@ endforeach(d_source ${d_generated_files}) set(classes ArrayOps ${classes}) foreach(class ${classes}) - set(d_sources ${d_sources} ${CMAKE_BINARY_DIR}/qt/${package}/${class}.d) - set(cpp_sources ${cpp_sources} ${CMAKE_BINARY_DIR}/cpp/qt_${package}/${class}_shell.cpp) + set(d_sources ${d_sources} ${CMAKE_BINARY_DIR}/qt/${package}/${class}.d) + set(cpp_sources ${cpp_sources} ${CMAKE_BINARY_DIR}/cpp/qt_${package}/${class}_shell.cpp) + if(EXISTS ${CMAKE_BINARY_DIR}/qt/${package}/${class}_aux.d) + set(d_sources ${d_sources} ${CMAKE_BINARY_DIR}/qt/${package}/${class}_aux.d) + endif(EXISTS ${CMAKE_BINARY_DIR}/qt/${package}/${class}_aux.d) endforeach(class ${classes}) set(files_for_gen ${files_for_gen} ${cpp_sources} ${d_sources}) diff -r da7c867ef2ef -r 6cd923119ab1 generator/CMakeLists.txt --- a/generator/CMakeLists.txt Mon Sep 07 11:37:16 2009 +0000 +++ b/generator/CMakeLists.txt Mon Sep 07 15:23:31 2009 +0000 @@ -207,25 +207,36 @@ # add_precompiled_header(generator ${CMAKE_CURRENT_SOURCE_DIR}/generator_pch.h) #ENDIF(NOT USEPCH) -if(NOT "${packages_in_build_txt}" STREQUAL "${packages}") - set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt) +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} "\n") - foreach(package ${packages}) + foreach(package_normal ${packages}) + string(TOLOWER ${package_normal} package) + string(TOUPPER ${package_normal} package_upper) file(APPEND ${dgen_build_conf} " \n") - endforeach(package ${packages}) + 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} "\n") set(packages_in_build_txt ${packages} CACHE INTERNAL "") -endif(NOT "${packages_in_build_txt}" STREQUAL "${packages}") +endif( NOT "${packages_in_build_txt}" STREQUAL "${packages}" + OR NOT EXISTS ${dgen_build_conf} + OR NOT EXISTS ${jambi_inc}) set(gen_sources) -foreach(package ${packages}) +foreach(package_normal ${packages}) + string(TOLOWER ${package_normal} package) set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml) 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} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java) endif(d_inc_file_found) -endforeach(package ${packages}) +endforeach(package_normal ${packages}) mark_as_advanced(d_inc_file_found) set(d_inc_file_found 1) @@ -249,7 +260,7 @@ ARGS ${GEN_OPT} --include-paths=${inc_paths} --output-directory=${out_dir} --source-directory=${CMAKE_SOURCE_DIR}/generator - qtjambi_masterinclude.h + ${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 diff -r da7c867ef2ef -r 6cd923119ab1 generator/main.cpp --- a/generator/main.cpp Mon Sep 07 11:37:16 2009 +0000 +++ b/generator/main.cpp Mon Sep 07 15:23:31 2009 +0000 @@ -153,9 +153,14 @@ source_dir = args.value("source-directory"); fileName = args.value("arg-1"); - if (!source_dir.isEmpty()) + if (!source_dir.isEmpty() && !QFileInfo(fileName).exists()) { fileName = source_dir + "/" + fileName; + if(!QFileInfo(fileName).exists()) + { + fprintf(stderr, "Master include '%s' is not found", fileName.toAscii().data()); + return 1; + } } typesystemFileName = args.value("arg-2");