代码之家  ›  专栏  ›  技术社区  ›  Anon

对于QBS,我将在动态库中设置哪些参数,以便在构建时安装头文件和库?

  •  0
  • Anon  · 技术社区  · 6 年前

    我正在将qt库从qmake迁移到qbs,我正在尝试找到一个合适的模板,它将帮助我了解简化所述库的构建和安装所需的参数。

    当前我的某个库的QBS文件如下所示:

    import qbs
    
    DynamicLibrary {
        name: "qparsingtoolkit";
        Depends {name: "cpp"}
        Depends {name: "Qt.core"}
    
        files: [
            "Headers/qparsingparameters.h",
            "Headers/qparsingtoolkit.h",
            "Headers/qparsingtoolkit_global.h",
            "Sources/qparsingparameters.cpp",
            "Sources/qparsingtoolkit.cpp",
        ]
    }
    

    安装相对简单。

    我只想把标题放在 /usr/include/qconsoledesigner

    以及 .so 库安装在 /usr/share/qconsoledesigner

    1 回复  |  直到 6 年前
        1
  •  2
  •   Christian Kandeler    6 年前
    DynamicLibrary {
        name: "qparsingtoolkit";
    
        Depends {name: "cpp"}
        Depends {name: "Qt.core"}
    
        qbs.installPrefix: "usr"
    
        files: [
            "Sources/qparsingparameters.cpp",
            "Sources/qparsingtoolkit.cpp",
        ]
    
        Group {
            name: "api_headers"
            files: [
                "Headers/qparsingparameters.h",
                "Headers/qparsingtoolkit.h",
                "Headers/qparsingtoolkit_global.h",
            ]
            qbs.install: true
            qbs.installDir: "include/qconsoledesigner"
        }
    
        Group {
            fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_symlink"]
            qbs.install: true
            qbs.installDir: "share/qconsoledesigner" 
        }
    }
    

    请注意,目标二进制文件的安装在将来将变得更加简单;请参见例如 http://doc-snapshots.qt.io/qbs/qml-qbsconvenienceitems-dynamiclibrary.html#installDir-prop .

    正常的“qbs build”安装到build目录内的install根目录中。要“全局”安装,请遵循“qbs build”和“sudo qbs install--no build--install root/”。