public function getTemplateFileContents($filename) { $filepath = realpath(rtrim($this->config->get('templatepath', 'backend'), '/') . '/' . $this->name . '/' . $filename); if (!file_exists($filepath)) { $filepath = realpath(__DIR__ . '/../templates/' . $this->name . '/' . $filename); } return file_get_contents($filepath); }
/** * Generate package-dependencies config for m4 * * @param $contentM4 * @throws Exception * @return string * TODO: Move the template depending part to backend? */ public function generatePackageDependenciesM4($contentM4) { $packageDependencies = $this->config->get('package-dependencies'); if (is_array($packageDependencies)) { $pkgconfigM4 = $this->backend->getTemplateFileContents('pkg-config.m4'); $pkgconfigCheckM4 = $this->backend->getTemplateFileContents('pkg-config-check.m4'); $extraCFlags = ''; foreach ($packageDependencies as $pkg => $version) { $pkgM4Buf = $pkgconfigCheckM4; $operator = '='; $operatorCmd = '--exact-version'; $ar = explode("=", $version); if (count($ar) == 1) { if ($version == '*') { $version = '0.0.0'; $operator = '>='; $operatorCmd = '--atleast-version'; } } else { switch ($ar[0]) { case '<': $operator = '<='; $operatorCmd = '--max-version'; $version = trim($ar[1]); break; case '>': $operator = '>='; $operatorCmd = '--atleast-version'; $version = trim($ar[1]); break; default: $version = trim($ar[1]); break; } } $toReplace = array('%PACKAGE_LOWER%' => strtolower($pkg), '%PACKAGE_UPPER%' => strtoupper($pkg), '%PACKAGE_REQUESTED_VERSION%' => $operator . ' ' . $version, '%PACKAGE_PKG_CONFIG_COMPARE_VERSION%' => $operatorCmd . '=' . $version); foreach ($toReplace as $mark => $replace) { $pkgM4Buf = str_replace($mark, $replace, $pkgM4Buf); } $pkgconfigM4 .= $pkgM4Buf; $extraCFlags .= '$PHP_' . strtoupper($pkg) . '_INCS '; } $contentM4 = str_replace('%PROJECT_EXTRA_CFLAGS%', '%PROJECT_EXTRA_CFLAGS% ' . $extraCFlags, $contentM4); $contentM4 = str_replace('%PROJECT_PACKAGE_DEPENDENCIES%', $pkgconfigM4, $contentM4); return $contentM4; } $contentM4 = str_replace('%PROJECT_PACKAGE_DEPENDENCIES%', '', $contentM4); return $contentM4; }