forked from mirror/waf
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
#!/usr/bin/env python
|
|
# encoding: utf-8
|
|
# Federico Pellegrin, 2016 (fedepell)
|
|
|
|
#
|
|
# Example extra that chains to either qt5 or pyqt5 for QRC/UI files as
|
|
# just one handler for an extension can be natively defined. The extra
|
|
# has to be loaded after qt5 and pyqt5 and files need to have explicitly
|
|
# set the feature they want to use.
|
|
#
|
|
|
|
import os
|
|
from waflib.Tools import python
|
|
from waflib.Tools import cxx
|
|
from waflib.extras import pyqt5
|
|
from waflib.Tools import qt5
|
|
from waflib import Task
|
|
from waflib.TaskGen import extension
|
|
from waflib import Logs
|
|
|
|
|
|
EXT_RCC = ['.qrc']
|
|
"""
|
|
File extension for the resource (.qrc) files
|
|
"""
|
|
|
|
EXT_UI = ['.ui']
|
|
"""
|
|
File extension for the user interface (.ui) files
|
|
"""
|
|
|
|
|
|
@extension(*EXT_RCC)
|
|
def create_chain_task(self, node):
|
|
"Creates rcc and py task for ``.qrc`` files"
|
|
if 'qt5' in self.features:
|
|
qt5.create_rcc_task(self, node)
|
|
elif 'pyqt5' in self.features:
|
|
pyqt5.create_pyrcc_task(self, node)
|
|
else:
|
|
Logs.warn("No feature explicitly defined for '%s'",node)
|
|
|
|
|
|
@extension(*EXT_UI)
|
|
def create_chain_task(self, node):
|
|
"Create uic tasks and py for user interface ``.ui`` definition files"
|
|
if 'qt5' in self.features:
|
|
qt5.create_uic_task(self, node)
|
|
elif 'pyqt5' in self.features:
|
|
pyqt5.create_pyuic_task(self, node)
|
|
else:
|
|
Logs.warn("No feature explicitly defined for '%s'",node)
|
|
|