Comments (1)
The proposed fix in #10 uses test -e
to see if the 'option' is a path or a file and then handle appropriately. This may not work if the file does not exist and a file/path was actually intended. I've got grave doubts about trying to generically interpret forward slash options to try and do the right thing. It's a can of worms I don't want to open up. The Unix-like operating systems already have ways to deal with paths and it's best for users to utilise that support, for example, the cygpath tool, mixed paths (such as c:/folder/file) or MSYS's automated Posix path conversions.
Instead, I propose removing the code that slightly modifies an option beginning '/'. Currently these are replaced by the system specific separator (/
on cygwin and -
on MSYS based systems). I propose all options beginning /
are completely unmodified.
cccl's goal is to be simple and lightweight and the proposal fits in with that. There is effectively no change on cygwin based systems. However, not on MSYS based systems.
On MSYS based systems, the upside is:
- Full support is gained for using absolute (full) posix paths, for example
cccl /c/code/main.cpp
will now correctly be passed on ascl /c/code/main.cpp
. Note that MSYS converts/corrects the/c/code/main.cpp
toc:\code\main.cpp
before passing to the cl executable. - Fit in and work with MSYS and its path handling as well as its forward slash option handling.
On MSYS based systems, the downside is:
- Change in behaviour when passing
/
to cccl. Currently options starting with/
get converted to the option starting with-
. cccl is a Unix cc emulator and so this is not likely to be something that is used much and/
options are fraught with problems on MSYS based systems, presumably largely avoided. They largely work when using//
instead as MSYS will translate this back to just/
. These cccl/
options were always intended to be passed through to cl unmodified and on MSYS//
is what is expected to be used instead. In summary, anyone currently passing options beginning/
to cccl will have to change them to begin with-
or//
.
from cccl.
Related Issues (10)
- -m<arch> options should be mapped to /arch HOT 2
- Adjust absolute linker paths to use directory HOT 1
- README: replace / add to deprecated AM_PROG_LIBTOOL and AC_LIBTOOL_WIN32_DLL HOT 1
- [request] Add 1.3 release tag HOT 2
- --cccl-muffle in msys/mingw requires grep -a
- Wish: Appveyor-specific documentation, example project & build HOT 3
- Option -link tries to link ink.lib HOT 4
- README: get rid of MinGW? HOT 2
- -I and -L with space do not work HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cccl.