diff -r 730c025d4b77 -r f378acbc9cfb mkspecs/hb_functions.prf --- a/mkspecs/hb_functions.prf Thu Jul 15 14:03:49 2010 +0100 +++ b/mkspecs/hb_functions.prf Thu Jul 22 16:36:53 2010 +0100 @@ -48,25 +48,25 @@ LIBRARY = $$last(PARTS) INCLUDEPATH *= $${HB_BUILD_DIR}/include/$${COLLECTION} + INCLUDEPATH *= $${HB_BUILD_DIR}/include/$${COLLECTION}/restricted INCLUDEPATH *= $${HB_BUILD_DIR}/include/$${COLLECTION}/private DEPENDPATH *= $${HB_BUILD_DIR}/include/$${COLLECTION} + DEPENDPATH *= $${HB_BUILD_DIR}/include/$${COLLECTION}/restricted DEPENDPATH *= $${HB_BUILD_DIR}/include/$${COLLECTION}/private LIBS *= -L$${HB_BUILD_DIR}/lib LIBS *= -l$$hbLibraryTarget($$LIBRARY) - QMAKE_RPATHDIR *= $${HB_BUILD_DIR}/lib unix:HB_COVERAGE_EXCLUDE += \"*/$$COLLECTION/*\" export(LIBS) export(INCLUDEPATH) export(DEPENDPATH) - export(QMAKE_RPATHDIR) export(HB_COVERAGE_EXCLUDE) return(true) } # params: -# NOTE: PUBLIC_HEADERS, INTERNAL_HEADERS, CONVENIENCE_HEADERS +# NOTE: exports PUBLIC_HEADERS, RESTRICTED_HEADERS and CONVENIENCE_HEADERS # eg. hbExportHeaders(hbcore) defineTest(hbExportHeaders) { for(PUBLIC_HEADER, PUBLIC_HEADERS) { @@ -74,12 +74,11 @@ EXPORT_PATH = $$sprintf($$HB_EXPORT_DIR, $$1, $$basename(PUBLIC_HEADER)) BLD_INF_RULES.prj_exports *= "$$PUBLIC_HEADER $$EXPORT_PATH" } - # DO NOT EXPORT PRIVATE HEADERS! - #for(INTERNAL_HEADER, INTERNAL_HEADERS) { - # INTERNAL_HEADER = $$section(INTERNAL_HEADER, ":", 1) - # EXPORT_PATH = $$sprintf($$HB_PRIVATE_EXPORT_DIR, $$1, $$basename(INTERNAL_HEADER)) - # BLD_INF_RULES.prj_exports *= "$$INTERNAL_HEADER $$EXPORT_PATH" - #} + for(RESTRICTED_HEADER, RESTRICTED_HEADERS) { + RESTRICTED_HEADER = $$section(RESTRICTED_HEADER, ":", 1) + EXPORT_PATH = $$sprintf($$HB_RESTRICTED_EXPORT_DIR, $$1, $$basename(RESTRICTED_HEADER)) + BLD_INF_RULES.prj_exports *= "$$RESTRICTED_HEADER $$EXPORT_PATH" + } for(CONVENIENCE_HEADER, CONVENIENCE_HEADERS) { CONVENIENCE_HEADER = $$section(CONVENIENCE_HEADER, ":", 1) EXPORT_PATH = $$sprintf($$HB_EXPORT_DIR, $$1, $$basename(CONVENIENCE_HEADER)) @@ -92,9 +91,7 @@ # params: - # eg. $$hbUnixStyle():CMD=/path/to/cmd else:CMD=\path\to\cmd defineTest(hbUnixStyle) { - symbian|win32:!win32-g++ { - unixstyle = false - } else:win32-g++:isEmpty(QMAKE_SH) { + contains(QMAKE_HOST.os, Windows):isEmpty(QMAKE_SH) { unixstyle = false } else { unixstyle = true @@ -105,29 +102,67 @@ # params: # eg. features.path = $$hbNativePath($$[QMAKE_MKSPECS]/features) defineReplace(hbNativePath) { - hbUnixStyle() { - return($$quote(\"$$replace(1, "\\", "/")\")) + contains(QMAKE_HOST.os, Windows) { + isEmpty(QMAKE_SH) { + 1 = $$replace(1, \\\\, $$QMAKE_DIR_SEP) + 1 = $$replace(1, /, $$QMAKE_DIR_SEP) + } else { + 1 = $$replace(1, \\\\, /) + 1 = $$replace(1, /, /) + } } else { - return($$quote(\"$$replace(1, "/", "\\")\")) + 1 = $$replace(1, \\\\, $$QMAKE_DIR_SEP) + 1 = $$replace(1, /, $$QMAKE_DIR_SEP) } + + return($$quote(\"$$1\")) } # params: # eg. hbfoo.command = $$hbToolCommand(hbfoo) defineReplace(hbToolCommand) { - # tool in PATH? - hbUnixStyle():DEVNULL = /dev/null - else:DEVNULL = nul - system($$1 > $$DEVNULL 2>&1):return($$1) + symbian { + # tool in PATH? + exists(/dev/null) { + DEVNULL = /dev/null + } else { + DEVNULL = nul + } + system($$1 > $$DEVNULL 2>&1):return($$1) - # host build is runnable? - hbtoolcmd = $$hbNativePath($$HB_BUILD_DIR/bin/$$1) - system($$hbtoolcmd > $$DEVNULL 2>&1):return($$hbtoolcmd) + # host build is runnable? + hbtoolcmd = $$hbNativePath($$HB_BUILD_DIR/bin/$$1) + system($$hbtoolcmd > $$DEVNULL 2>&1):return($$hbtoolcmd) - # pre-built tool is runnable? - hbtoolcmd = $$hbNativePath($$sprintf("%1%2", $$HB_SOURCE_DIR/bin/$$1, "_symbian.exe")) - system($$hbtoolcmd > $$DEVNULL 2>&1):return($$hbtoolcmd) + # tool in HB_BIN_DIR? + hbtoolcmd = $$hbNativePath($$HB_BIN_DIR/$$1) + system($$hbtoolcmd > $$DEVNULL 2>&1):return($$hbtoolcmd) + # pre-built tool is runnable? + hbtoolcmd = $$hbNativePath($$sprintf("%1%2", $$HB_SOURCE_DIR/bin/$$1, "_symbian.exe")) + system($$hbtoolcmd > $$DEVNULL 2>&1):return($$hbtoolcmd) + } # fall back to /bin return($$hbNativePath($$HB_BUILD_DIR/bin/$$1)) } + +# params: +defineReplace(hbCopyCommand) { + file = $$hbNativePath($$1) + dir = $$hbNativePath($$2) + + contains(QMAKE_HOST.os, Windows):isEmpty(QMAKE_SH) { + chk_dir_exists = if not exist $$dir + mkdir = mkdir $$dir + copy = copy /y $$file $$dir + } else { + chk_dir_exists = test -d $$dir + mkdir = mkdir -p $$dir + copy = cp $$file $$dir + } + + hbUnixStyle(): chk_dir_exists_mkdir = $$chk_dir_exists || $$mkdir + else:chk_dir_exists_mkdir = $$chk_dir_exists $$mkdir + + return(($$chk_dir_exists_mkdir) && $$copy) +}