Skip to content
Snippets Groups Projects
Unverified Commit 3b7655f2 authored by mergify[bot]'s avatar mergify[bot] Committed by GitHub
Browse files

Merge pull request #7652 from Mistuke/fix-configure-different-way

Windows: rewrite paths to configure
parents cfd5affa 4c800c92
No related branches found
No related tags found
No related merge requests found
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
-- |
-- Module : Distribution.Simple
......@@ -97,7 +98,11 @@ import Distribution.System (buildPlatform)
import System.Environment (getArgs, getProgName)
import System.Directory (removeFile, doesFileExist
,doesDirectoryExist, removeDirectoryRecursive)
import System.FilePath (searchPathSeparator, takeDirectory, (</>), splitDirectories, dropDrive)
import System.FilePath (searchPathSeparator, takeDirectory, (</>),
splitDirectories, dropDrive)
#ifdef mingw32_HOST_OS
import System.FilePath (normalise, splitDrive)
#endif
import Distribution.Compat.ResponseFile (expandResponse)
import Distribution.Compat.Directory (makeAbsolute)
import Distribution.Compat.Environment (getEnvironment)
......@@ -670,7 +675,7 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do
-- TODO: We don't check for colons, tildes or leading dashes. We
-- also should check the builddir's path, destdir, and all other
-- paths as well.
let configureFile' = intercalate "/" $ splitDirectories configureFile
let configureFile' = toUnix configureFile
for_ badAutoconfCharacters $ \(c, cname) ->
when (c `elem` dropDrive configureFile') $
warn verbosity $ concat
......@@ -710,6 +715,19 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do
++ "If you are not on Windows, ensure that an 'sh' command "
++ "is discoverable in your path."
-- | Convert Windows path to Unix ones
toUnix :: String -> String
#ifdef mingw32_HOST_OS
toUnix s = let tmp = normalise s
(l, rest) = case splitDrive tmp of
([], x) -> ("/" , x)
(h:_, x) -> ('/':h:"/", x)
parts = splitDirectories rest
in l ++ intercalate "/" parts
#else
toUnix s = intercalate "/" $ splitDirectories s
#endif
badAutoconfCharacters :: [(Char, String)]
badAutoconfCharacters =
[ (' ', "space")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment