public function compile (Report $report, bool $skipExec = false)
    {

        $sourceFullPath = $report->getSourceFile(); // $this->sourcePath . DIRECTORY_SEPARATOR . $report->getSourceFile(); 
        $compiledPath = $this->compiledPath;

        $this->shellCommand = $this->executablePath . " cp -o $compiledPath $sourceFullPath";

        if (!$skipExec) {
            $oldcwd = getcwd();
            chdir($this->sourcePath);
            $error = shell_exec(escapeshellcmd($this->shellCommand));
            chdir($oldcwd);

            if (!empty($error)) {
                throw new \Exception($error);
            }
        }

        return $compiledPath;
    }