changeset 265:6cd923119ab1

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
author SokoL_SD
date Mon, 07 Sep 2009 15:23:31 +0000
parents da7c867ef2ef
children 5134552d97f6
files CMakeLists.txt generator/CMakeLists.txt generator/main.cpp
diffstat 3 files changed, 31 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- 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})
 
--- 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} "<typesystem>\n")
-    foreach(package ${packages})
+    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")
-    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} "</typesystem>\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
--- 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");