com php-src: sync with the incremental and inter-file analysis option: win32/build/config.w32 win32/build/confutils.js

[email protected] (Anatol Belski)
Newsgroups php.cvs
Message-ID <[email protected]>
Commit:    b8f75e75f65c26f0b8d606a3ddac96015db79088
Author:    Anatol Belski <[email protected]>         Tue, 7 Mar 2017 15:27:57 +0100
Parents:   8a6281455ed41ec42af2ceeeb789835b41839135
Branches:  PHP-7.1 master

Link:       http://git.php.net/?p=php-src.git;a=commitdiff;h=b8f75e75f65c26f0b8d606a3ddac96015db79088

Log:
sync with the incremental and inter-file analysis option

available as of cppcheck 1.77

Changed paths:
  M  win32/build/config.w32
  M  win32/build/confutils.js


Diff:
diff --git a/win32/build/config.w32 b/win32/build/config.w32
index 4c476e6..1269c6e 100644
--- a/win32/build/config.w32
+++ b/win32/build/config.w32
@@ -123,6 +123,94 @@ add_extra_dirs();
 
 //DEFINE("PHP_BUILD", PHP_PHP_BUILD);
 
+ARG_WITH("analyzer", "Enable static analyzer. Pass vs for Visual Studio, clang for clang, cppcheck for Cppcheck, pvs for PVS-Studio", "no");
+if (PHP_ANALYZER == "vs") {
+	ADD_FLAG("CFLAGS", " /analyze ");
+	ADD_FLAG("CFLAGS", " /wd6308 ");
+} else if (PHP_ANALYZER == "clang") {
+	var clang_cl = false;
+
+	if (FSO.FileExists(PROGRAM_FILES + "\\LLVM\\bin\\clang-cl.exe")) {
+		clang_cl = PROGRAM_FILES + "\\LLVM\\bin\\clang-cl.exe";
+	} else if (FSO.FileExists(PROGRAM_FILESx86 + "\\LLVM\\bin\\clang-cl.exe")) {
+		clang_cl = PROGRAM_FILESx86 + "\\LLVM\\bin\\clang-cl.exe";
+	}
+
+	if (!clang_cl) {
+		if (false == PATH_PROG('clang-cl', null, 'CLANG_CL')) {
+			WARNING("Couldn't find clang binaries, static analyze was disabled");
+			PHP_ANALYZER = "no";
+		}
+	} else {
+		DEFINE("CLANG_CL", clang_cl);
+	}
+} else if (PHP_ANALYZER == "cppcheck") {
+
+	var cppcheck = false;
+
+	if (FSO.FileExists(PROGRAM_FILES + "\\Cppcheck\\cppcheck.exe")) {
+		cppcheck = PROGRAM_FILES + "\\Cppcheck\\cppcheck.exe";
+	} else if (FSO.FileExists(PROGRAM_FILESx86 + "\\Cppcheck\\cppcheck.exe")) {
+		cppcheck = PROGRAM_FILESx86 + "\\Cppcheck\\cppcheck.exe";
+	}
+	if (!cppcheck) {
+		if (false == PATH_PROG('cppcheck', null, 'CPPCHECK')) {
+			WARNING("Couldn't find Cppcheck binaries, static analyze was disabled");
+			PHP_ANALYZER = "no";
+		} else {
+			cppcheck = get_define("CPPCHECK");
+		}
+	} else {
+		DEFINE("CPPCHECK", cppcheck);
+	}
+
+	if (cppcheck) {
+		var _tmp = execute(cppcheck + " --version").split(/ /)[1];
+		var cppcheck_ver = [
+			parseInt(_tmp.split(".")[0]),
+			parseInt(_tmp.split(".")[1]),
+		];
+		if (cppcheck_ver[0] > 1 || cppcheck_ver[0] == 1 && cppcheck_ver[1] >= 77) {
+			var build_dir = get_define("BUILD_DIR");
+			var cppcheck_build_dir = build_dir + "\\cppcheck_build";
+			if (!FSO.FolderExists(cppcheck_build_dir)) {
+				FSO.CreateFolder(cppcheck_build_dir);
+			}
+			DEFINE("CPPCHECK_BUILD_DIR", cppcheck_build_dir);
+		}
+	}
+
+} else if (PHP_ANALYZER == "pvs") {
+	var pvs_studio = false;
+
+	if (FSO.FileExists(PROGRAM_FILES + "\\PVS-Studio\\x64\\PVS-Studio.exe")) {
+		pvs_studio = PROGRAM_FILES + "\\PVS-Studio\\x86\\PVS-Studio.exe";
+	} else if (FSO.FileExists(PROGRAM_FILESx86 + "\\PVS-Studio\\x64\\PVS-Studio.exe")) {
+		pvs_studio = PROGRAM_FILESx86 + "\\PVS-Studio\\x64\\PVS-Studio.exe";
+	}
+
+	if (!pvs_studio) {
+		WARNING("Couldn't find PVS-Studio binaries, static analyze was disabled");
+		PHP_ANALYZER = "no";
+	} else {
+		var pvscfg = FSO.CreateTextFile("PVS-Studio.conf", true);
+		DEFINE("PVS_STUDIO", pvs_studio);
+
+		pvscfg.WriteLine("exclude-path = " + VCINSTALLDIR);
+		if (FSO.FolderExists(PROGRAM_FILESx86 + "\\windows kits\\")) {
+			pvscfg.WriteLine("exclude-path = " + PROGRAM_FILESx86 + "\\windows kits\\");
+		} else if (FSO.FolderExists(PROGRAM_FILES + "\\windows kits\\")) {
+			pvscfg.WriteLine("exclude-path = " + PROGRAM_FILES + "\\windows kits\\");
+		}
+		pvscfg.WriteLine("vcinstalldir = " + VCINSTALLDIR);
+		pvscfg.WriteLine("platform = " + (X64 ? 'x64' : 'Win32'));
+		pvscfg.WriteLine("preprocessor = visualcpp");
+		pvscfg.WriteLine("language = C");
+	}
+} else {
+	PHP_ANALYZER = "no"
+}
+
 STDOUT.WriteBlankLines(1);
 STDOUT.WriteLine("Build dir: " + get_define('BUILD_DIR'));
 STDOUT.WriteLine("PHP Core:  " + get_define('PHPDLL') + " and " + get_define('PHPLIB'));
@@ -212,75 +300,6 @@ if (PHP_SECURITY_FLAGS == "yes") {
 	ADD_FLAG("LDFLAGS", "/NXCOMPAT /DYNAMICBASE ");
 }
 
-ARG_WITH("analyzer", "Enable static analyzer. Pass vs for Visual Studio, clang for clang, cppcheck for Cppcheck, pvs for PVS-Studio", "no");
-if (PHP_ANALYZER == "vs") {
-	ADD_FLAG("CFLAGS", " /analyze ");
-	ADD_FLAG("CFLAGS", " /wd6308 ");
-} else if (PHP_ANALYZER == "clang") {
-	var clang_cl = false;
-
-	if (FSO.FileExists(PROGRAM_FILES + "\\LLVM\\bin\\clang-cl.exe")) {
-		clang_cl = PROGRAM_FILES + "\\LLVM\\bin\\clang-cl.exe";
-	} else if (FSO.FileExists(PROGRAM_FILESx86 + "\\LLVM\\bin\\clang-cl.exe")) {
-		clang_cl = PROGRAM_FILESx86 + "\\LLVM\\bin\\clang-cl.exe";
-	}
-
-	if (!clang_cl) {
-		if (false == PATH_PROG('clang-cl', null, 'CLANG_CL')) {
-			WARNING("Couldn't find clang binaries, static analyze was disabled");
-			PHP_ANALYZER = "no";
-		}
-	} else {
-		DEFINE("CLANG_CL", clang_cl);
-	}
-} else if (PHP_ANALYZER == "cppcheck") {
-
-	var cppcheck = false;
-
-	if (FSO.FileExists(PROGRAM_FILES + "\\Cppcheck\\cppcheck.exe")) {
-		cppcheck = PROGRAM_FILES + "\\Cppcheck\\cppcheck.exe";
-	} else if (FSO.FileExists(PROGRAM_FILESx86 + "\\Cppcheck\\cppcheck.exe")) {
-		cppcheck = PROGRAM_FILESx86 + "\\Cppcheck\\cppcheck.exe";
-	}
-	if (!cppcheck) {
-		if (false == PATH_PROG('cppcheck', null, 'CPPCHECK')) {
-			WARNING("Couldn't find Cppcheck binaries, static analyze was disabled");
-			PHP_ANALYZER = "no";
-		}
-	} else {
-		DEFINE("CPPCHECK", cppcheck);
-	}
-} else if (PHP_ANALYZER == "pvs") {
-	var pvs_studio = false;
-
-	if (FSO.FileExists(PROGRAM_FILES + "\\PVS-Studio\\x64\\PVS-Studio.exe")) {
-		pvs_studio = PROGRAM_FILES + "\\PVS-Studio\\x86\\PVS-Studio.exe";
-	} else if (FSO.FileExists(PROGRAM_FILESx86 + "\\PVS-Studio\\x64\\PVS-Studio.exe")) {
-		pvs_studio = PROGRAM_FILESx86 + "\\PVS-Studio\\x64\\PVS-Studio.exe";
-	}
-
-	if (!pvs_studio) {
-		WARNING("Couldn't find PVS-Studio binaries, static analyze was disabled");
-		PHP_ANALYZER = "no";
-	} else {
-		var pvscfg = FSO.CreateTextFile("PVS-Studio.conf", true);
-		DEFINE("PVS_STUDIO", pvs_studio);
-
-		pvscfg.WriteLine("exclude-path = " + VCINSTALLDIR);
-		if (FSO.FolderExists(PROGRAM_FILESx86 + "\\windows kits\\")) {
-			pvscfg.WriteLine("exclude-path = " + PROGRAM_FILESx86 + "\\windows kits\\");
-		} else if (FSO.FolderExists(PROGRAM_FILES + "\\windows kits\\")) {
-			pvscfg.WriteLine("exclude-path = " + PROGRAM_FILES + "\\windows kits\\");
-		}
-		pvscfg.WriteLine("vcinstalldir = " + VCINSTALLDIR);
-		pvscfg.WriteLine("platform = " + (X64 ? 'x64' : 'Win32'));
-		pvscfg.WriteLine("preprocessor = visualcpp");
-		pvscfg.WriteLine("language = C");
-	}
-} else {
-	PHP_ANALYZER = "no"
-}
-
 if (CLANG_TOOLSET) {
 	ARG_WITH("uncritical-warn-choke", "Disable some uncritical warnings", "yes");
 	if (PHP_UNCRITICAL_WARN_CHOKE != "no") {
diff --git a/win32/build/confutils.js b/win32/build/confutils.js
index 841fa29..8999517 100644
--- a/win32/build/confutils.js
+++ b/win32/build/confutils.js
@@ -1637,6 +1637,11 @@ function ADD_SOURCES(dir, file_list, target, obj_dir)
 						/* "--rule-file=win32\build\cppcheck_rules.xml " + */
 						" --std=c89 --std=c++11 " + 
 						"--quiet --inconclusive --template=vs ";
+
+			var cppcheck_build_dir = get_define("CPPCHECK_BUILD_DIR");
+			if (!!cppcheck_build_dir) {
+				analyzer_base_args += "--cppcheck-build-dir=$(CPPCHECK_BUILD_DIR)";
+			}
 		}
 
 		if (PHP_MP_DISABLED) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.