From b6f5b38f8c883f5c82d9dc0332f55521f59b70db Mon Sep 17 00:00:00 2001 From: Fredrik Orderud Date: Mon, 8 Aug 2016 22:39:00 +0200 Subject: Define _WINDLL when building a DLL Visual Studio automatically defines _WINDLL when building a DLL, regardless of project settings (https://msdn.microsoft.com/en-us/library/8x480de8.aspx). This define is therefore widely used to detect DLL vs. static library or executable build target on Windows. For makefiles, _WINDLL need to be manually defined, which QMake failed to do so far. Task-number: QTBUG-55183 Change-Id: Ic62201666c44e730e6881706d568ce9eaf22b7a4 Reviewed-by: Oswald Buddenhagen --- qmake/generators/win32/msvc_nmake.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'qmake/generators/win32/msvc_nmake.cpp') diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp index 31abed57ef..ae139c23be 100644 --- a/qmake/generators/win32/msvc_nmake.cpp +++ b/qmake/generators/win32/msvc_nmake.cpp @@ -426,6 +426,12 @@ void NmakeMakefileGenerator::init() if (!defines.contains("NDEBUG")) defines.append("NDEBUG"); } + + if (project->values("QMAKE_APP_FLAG").isEmpty() && project->isActiveConfig("dll")) { + ProStringList &defines = project->values("DEFINES"); + if (!defines.contains("_WINDLL")) + defines.append("_WINDLL"); + } } QStringList NmakeMakefileGenerator::sourceFilesForImplicitRulesFilter() -- cgit v1.2.3