Hi all.
I want to create a wrapper around of existing 3rd DLL on windows as a
separate product.
This solution works only with the MSVC compiler, as says in here (in
previous thread):
http://lists.qt-project.org/pipermail/qbs/2014-May/000807.html
My current snippet:
= dllwrap.qbs =
importqbs
import qbs.FileInfo
import qbs.File
DynamicLibrary {
name: "mhstcan"
Transformer {
Artifact {
filePath: product.targetName + ".dll" << existing runtime
library
fileTags: "dynamiclibrary"
}
Artifact {
filePath: product.targetName + ".lib" << existing import library
fileTags: "dynamiclibrary_import"
}
prepare: {
var commands = []
for (var tag in outputs) {
for (var index in outputs[tag]) {
var artifact = outputs[tag][index];
var cmd = new JavaScriptCommand();
cmd.sourceFile = product.sourceDirectory + "/" +
FileInfo.fileName(artifact.filePath);
cmd.description = "copying " +
FileInfo.fileName(cmd.sourceFile);
cmd.highlight = "codegen";
cmd.targetFilePath = artifact.filePath;
cmd.sourceCode = function() {
File.copy(sourceFile, targetFilePath); }
commands.push(cmd);
}
}
return commands;
}
}
}
== app.qbs ==
import qbs
Application {
name: "app"
Depends { name: "cpp" }
Depends { name: "mhstcan" }
files: [
"app.cpp",
]
}
Briefly: I want to wrap the existing shared library mhstcan.dll (with import
mhstcan.lib), which is compiled in MSVC, but to using in MinGW compiler. But all
attempts are fails, because the linker does not called never.
Seems, that "dynamiclibrary_import" is defined only for the MSVC compiler.
But the MinGW has nothing similar.
I tried to:
* use the "staticlibrary" instead of "dynamiclibrary_import"
* convert the *.lib import file to the *.a import file and to pass to Artifact
with
the "*.a" suffix
but nothing successfully - no linker called.
So, my question: is any trick for it?
PS: I use QBS from the QtCreator 3.3.0 + Qt 4.8.6
BR,
Denis
_______________________________________________
QBS mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/qbs