forked from qt-creator/qt-creator
		
	use the data copying custom compiler approach here, too. this leaves more work to qmake, which is good. on the upside, pluginspecs will be installed when they change without having force a re-link of the plugin itself. on the downside, installation of a pluginspec will force a re-link of the plugin. oh, well - you can't have it all (with qmake) ...
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| defineReplace(cleanPath) {
 | |
|     win32:1 ~= s|\\\\|/|g
 | |
|     contains(1, ^/.*):pfx = /
 | |
|     else:pfx =
 | |
|     segs = $$split(1, /)
 | |
|     out =
 | |
|     for(seg, segs) {
 | |
|         equals(seg, ..):out = $$member(out, 0, -2)
 | |
|         else:!equals(seg, .):out += $$seg
 | |
|     }
 | |
|     return($$join(out, /, $$pfx))
 | |
| }
 | |
| 
 | |
| defineReplace(targetPath) {
 | |
|     win32:1 ~= s|/|\|g
 | |
|     return($$1)
 | |
| }
 | |
| 
 | |
| # For use in custom compilers which just copy files
 | |
| win32:i_flag = i
 | |
| defineReplace(stripSrcDir) {
 | |
|     win32 {
 | |
|         !contains(1, ^.:.*):1 = $$OUT_PWD/$$1
 | |
|     } else {
 | |
|         !contains(1, ^/.*):1 = $$OUT_PWD/$$1
 | |
|     }
 | |
|     out = $$cleanPath($$1)
 | |
|     out ~= s|^$$re_escape($$PWD/)||$$i_flag
 | |
|     return($$out)
 | |
| }
 | |
| 
 | |
| isEmpty(TEST):CONFIG(debug, debug|release) {
 | |
|     !debug_and_release|build_pass {
 | |
|         TEST = 1
 | |
|     }
 | |
| }
 | |
| 
 | |
| linux-*-64 {
 | |
|     IDE_LIBRARY_BASENAME = lib64
 | |
| } else {
 | |
|     IDE_LIBRARY_BASENAME = lib
 | |
| }
 | |
| 
 | |
| equals(TEST, 1) {
 | |
|     QT +=testlib
 | |
|     DEFINES += WITH_TESTS
 | |
| }
 | |
| 
 | |
| IDE_SOURCE_TREE = $$PWD
 | |
| sub_dir = $$_PRO_FILE_PWD_
 | |
| sub_dir ~= s,^$$re_escape($$PWD),,
 | |
| IDE_BUILD_TREE = $$cleanPath($$OUT_PWD)
 | |
| IDE_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,,
 | |
| IDE_APP_PATH = $$IDE_BUILD_TREE/bin
 | |
| macx {
 | |
|     IDE_APP_TARGET   = QtCreator
 | |
|     IDE_LIBRARY_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/PlugIns
 | |
|     IDE_PLUGIN_PATH  = $$IDE_LIBRARY_PATH
 | |
|     IDE_LIBEXEC_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
 | |
|     IDE_DATA_PATH    = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
 | |
|     contains(QT_CONFIG, ppc):CONFIG += ppc x86
 | |
|     copydata = 1
 | |
| } else {
 | |
|     win32 {
 | |
|         contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1
 | |
|         IDE_APP_TARGET   = qtcreator
 | |
|     } else {
 | |
|         IDE_APP_WRAPPER  = qtcreator
 | |
|         IDE_APP_TARGET   = qtcreator.bin
 | |
|     }
 | |
|     IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/$$IDE_LIBRARY_BASENAME/qtcreator
 | |
|     IDE_PLUGIN_PATH  = $$IDE_LIBRARY_PATH/plugins
 | |
|     IDE_LIBEXEC_PATH = $$IDE_APP_PATH # FIXME
 | |
|     IDE_DATA_PATH    = $$IDE_BUILD_TREE/share/qtcreator
 | |
|     !isEqual(IDE_SOURCE_TREE, $$IDE_BUILD_TREE):copydata = 1
 | |
| }
 | |
| 
 | |
| INCLUDEPATH += \
 | |
|     $$IDE_SOURCE_TREE/src/libs \
 | |
|     $$IDE_SOURCE_TREE/tools
 | |
| 
 | |
| DEPENDPATH += \
 | |
|     $$IDE_SOURCE_TREE/src/libs \
 | |
|     $$IDE_SOURCE_TREE/tools
 | |
| 
 | |
| LIBS += -L$$IDE_LIBRARY_PATH
 | |
| 
 | |
| # DEFINES += QT_NO_CAST_FROM_ASCII
 | |
| DEFINES += QT_NO_CAST_TO_ASCII
 | |
| 
 | |
| unix {
 | |
|     debug:OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared
 | |
|     release:OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared
 | |
| 
 | |
|     debug:MOC_DIR = $${OUT_PWD}/.moc/debug-shared
 | |
|     release:MOC_DIR = $${OUT_PWD}/.moc/release-shared
 | |
| 
 | |
|     RCC_DIR = $${OUT_PWD}/.rcc
 | |
|     UI_DIR = $${OUT_PWD}/.uic
 | |
| }
 | |
| 
 | |
| linux-g++-* {
 | |
|     # Bail out on non-selfcontained libraries. Just a security measure
 | |
|     # to prevent checking in code that does not compile on other platforms.
 | |
|     QMAKE_LFLAGS += -Wl,--allow-shlib-undefined -Wl,--no-undefined
 | |
| }
 |