我正在创建一个全新的项目(守护程序),我想尽量减少它的依赖和工作。
它的一个依赖项(在其他项目中使用)使用另一个库依赖项执行一些日志记录。我不希望在我的守护程序中登录。
愈。。。记录器库是一个子模块...我什至不想为守护程序项目引入该子模块。
我正在考虑根据项目中的定义设置依赖项......像这样:
daemon.pro:
TEMPLATE = subdirs
SUBDIRS = Dependency
MyDaemon
CONFIG += ordered
DEFINES += NO_LOGGING
Dependency.pro
TEMPLATE = lib
NO_LOGGING {
} else {
LIBS += -L$$OUT_PWD/../Logger/ -lLogger
INCLUDEPATH += $$PWD/../Logger
DEPENDPATH += $$PWD/../Logger
}
依赖性.cpp
#ifdef NO_LOGGING
// Redefine log function as a no-op
#else
#include "Logger.h"
#endif
听上去很好?它对我有用 - 但它不起作用。
似乎我无法将定义从容器传递到内部项目......
有什么办法可以设置吗?
另一种选择是只应对少量的伐木......
Linux...嵌入式。。。Qt 4.7
像往常一样,创建一个包含文件,然后在所有项目中使用它,如下所示:
我的恶魔
features = logging other_feature # any name will do
mydemon.pro
include(mydemon.pri)
...
contains(features, logging) {
# implement it here
} else {
DEFINES += NO_LOGGING
}
dependency.pro
include(../mydemon/mydemon.pri, demon)
...
contains(demon.features, logging) {
# use logging
} else {
# no logging available
}