protected function buildInProjectMode($projectMake)
    {
        $drushHelper = $this->getDrushHelper();
        $drushHelper->ensureInstalled();
        $drushFlags = $this->getDrushFlags();

        $drupalRoot = $this->getWebRoot();

        $args = array_merge(
            ['make', $projectMake, $drupalRoot],
            $drushFlags
        );

        // Create a lock file automatically.
        if (!strpos($projectMake, '.lock') && !empty($this->settings['lock']) && $drushHelper->supportsMakeLock()) {
            $args[] = "--lock=$projectMake.lock";
        }

        // Run Drush make.
        //
        // Note that this is run inside the make file's directory. This fixes an
        // issue with the 'copy' Drush Make download type. According to the
        // Drush documentation, URLs for copying files can be either absolute or
        // relative to the make file's directory. However, in Drush's actual
        // implementation, it's actually relative to the current working
        // directory.
        $drushHelper->execute($args, dirname($projectMake), true, false);

        $this->processSettingsPhp();

        $this->ignoredFiles[] = '*.make';
        $this->ignoredFiles[] = '*.make.lock';
        $this->ignoredFiles[] = '*.make.yml';
        $this->ignoredFiles[] = '*.make.yml.lock';
        $this->ignoredFiles[] = 'settings.local.php';
        $this->specialDestinations['sites.php'] = '{webroot}/sites';

        // Symlink, non-recursively, all files from the app into the
        // 'sites/default' directory.
        $this->fsHelper->symlinkAll(
            $this->appRoot,
            $drupalRoot . '/sites/default',
            true,
            false,
            array_merge($this->ignoredFiles, array_keys($this->specialDestinations)),
            $this->copy
        );
    }