Git Product home page Git Product logo

cclash's People

Contributors

inorton avatar orgads avatar slonopotamus avatar un1or avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cclash's Issues

Cannot compile projects, does not find header, does not work well with NuGet Packages

Simple Test Project in use:
https://github.com/relascope/TestingCppClrCs

It seems, that:

  • the ./ INCLUDEPATH is not handled correctly
  • Preprocessor Macros also don't work (found while testing different project: e.g. set in Project Properties and use as variable)
  • the Environment variables, which are given to cl(cclash).exe should be forwarded to cl_real.exe

Maybe I have misunderstood something:
Does the server has to be started to work correctly?

/EH is confused with /E

cclash seems to interpret the /EH option as /E, which is an unsupported option. It looks like the cause is at

string getOption(string arg)

I'd be happy to submit a pull request to fix this, but I notice there hasn't been a release in over a year, so I want to make sure this project is still maintained before I take the time to do that.

Compiling qt reports only unsupported

CCLASH_TRACKER_MODE=yes
And configure called with -no-pch

Using cmake with a Qt based project also results only in unsupported.

Would be great to be able to use cclash with Qt.

Provide chocolatey package for cclash

I would love to use cclash in the osquery Windows build on our CI build hosts!

We have a lot of tooling right now to provision hosts using choco, would you mind investigating how much effort it would take to provide a cclash package?

Roadmap

  • Isolate compiler instances from environment
  • Server to accept more than one job (convert pipes to tcp service)
  • Setting to disable stats collection
  • Create monitoring tool (tcp service) for stats collection
  • Spot what might get compiled next and pre-empt cache misses concurrently

cclash should attempt to handle '/' style paths

Where we use cclash we already have another wrapper that corrects paths from unix "/" to windows "" styles so we've not run into needing this. But I will make a stab at sorting this out.

Support multiple files in command line

MSBuild/devenv will call cl with multiple cpp files sometimes and cclash is not supporting this case.
Maybe cclash should split this kind of command into multiple commands for better cache hitting.

Linker collisions

When two or more invocations of the linker or cl link using the same files there is a chance that one will fail due to 'file in use' errors.

LNK1181: cannot open input file 'C:/PROGRA2/WINDOW4/8.0//Lib/win8/um/x64/cfgmgr32.lib'

cclash should be able to serialize linking calls

Failed to run 'testprogram' project

Environment.SetEnvironmentVariable("CCLASH_DIR", System.IO.Path.Combine(CClashTestsFixtureSetup.InitialDir, CacheFolderName + cachesuffix));

throws because CClashTestsFixtureSetup.InitialDir is null, becuase Init() method never called.

May be I'm cooking it wrong?

Missing AssemblyInfo.cs file in cct project

Hi,
I've failed to compile cclash.sln because cct\Properties\AssemblyInfo.cs is missing:

2>------ Build started: Project: cct, Configuration: Release Any CPU ------
2>CSC : error CS2001: Source file 'Properties\AssemblyInfo.cs' could not be found```

Cannot find OBJ_FOLDER\.obj file

When you build a single file "source.cpp" with the /FoC:\OBJ_FOLDER\ option it will fail with this error
"Cannot find C:\OBJ_FOLDER.obj file"
It shoud looks for the C:\OBJ_FOLDER\source.obj" file instead.

cclash do not find the include files

When the VS localization is not English. CLash will not find the include files. Because it looks for the "Note: including file" to identify an include file. But this string is localized.

Provide an installer

At the moment installation of cclash is manual. There should be an installer that sets the correct file locations and should offer to "move" the "real" cl.exe

Escaping of \"FOOO\" is broken.

Escaping of "FOOO" is broken.

cl -c -nologo -Zc:wchar_t -W3 -GR -EHsc -w34100 -w34189 -wd4577 -DUNICODE -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DQT_BUILD_CONFIGURE -DQT_USE_QSTRINGBUILDER -DQT_VERSION_STR=\"5.7.0\" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=7 -DQT_VERSION_PATCH=0 -I"..\..\include" -I"..\..\include\QtCore" -I"..\..\include\QtCore\5.7.0" -I"..\..\include\QtCore\5.7.0\QtCore" -I"q:\qtbase\tools\shared" -I"q:\qtbase\mkspecs\win32-msvc2012" q:\qtbase\src\corelib\io\qfile.cpp q:\qtbase\src\corelib\io\qfileinfo.cpp q:\qtbase\src\corelib\io\qabstractfileengine.cpp q:\qtbase\src\corelib\io\qfilesystementry.cpp q:\qtbase\src\corelib\io\qfilesystemengine.cpp qglobal.cpp q:\qtbase\src\corelib\global\qglobal.cpp(1024): error C2143: syntax error: missing ';' before 'constant' q:\qtbase\src\corelib\global\qglobal.cpp(1024): error C2440: 'return': cannot convert from 'double' to 'const char *' jom: R:\build\libs\qtbase\work\msvc2015-Debug-5.7\tools\configure\Makefile [qglobal.obj] Error 2 cl -c -nologo -Zc:wchar_t -W3 -GR -EHsc -w34100 -w34189 -wd4577 -DUNICODE -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DQT_BUILD_CONFIGURE -DQT_USE_QSTRINGBUILDER -DQT_VERSION_STR=\"5.7.0\" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=7 -DQT_VERSION_PATCH=0 -I"..\..\include" -I"..\..\include\QtCore" -I"..\..\include\QtCore\5.7.0" -I"..\..\include\QtCore\5.7.0\QtCore" -I"q:\qtbase\tools\shared" -I"q:\qtbase\mkspecs\win32-msvc2012" q:\qtbase\src\corelib\io\qfilesystemengine_win.cpp q:\qtbase\src\corelib\io\qfilesystemiterator_win.cpp q:\qtbase\src\corelib\io\qfsfileengine.cpp q:\qtbase\src\corelib\io\qfsfileengine_win.cpp q:\qtbase\src\corelib\io\qfsfileengine_iterator.cpp

The source code at that location is

const char *qVersion() Q_DECL_NOTHROW { return QT_VERSION_STR; }

Using 0.3.17

Support other arguments with rsp file

Gyp's ninja generator will generate command lines like:
$cc /nologo /showIncludes /FC @$out.rsp /c a.cpp /Foa.obj /Fda.pdb

  1. Cclash can only be used with one rsp file and without any other arguments;
  2. The rsp file is not longer than 2147;
  3. /nologo and /showIncludes is not supported by cclash.

I suggest cclash creating its own new rsp file to store all the arguments to fix these issues.

Illegal characters in path

I see a couple errors with "Illegal characters in path". Whatever the path is works fine with msvc, and still still works just fine using cclash (except for the error message), although I presume that no caching is happening -- so I don't think the underlying cl.exe actually cares about these illegal characters.

Example:

[ 29%] Building C object test/driver_stub/CMakeFiles/OpenCLDriverStub.dir/cl.c.obj
System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   at System.IO.Path.IsPathRooted(String path)
   at CClash.Compiler.ProcessArguments(String[] args) in c:\Users\inb\Desktop\cclash\cclash\CClash\Compiler.cs:line 554

Missing cct.psses

Hi,
After i've opened cclash.sln in msvs 2015 it displays error dialog that cct.psess file is missing.
(nevertheless the project is compiled successfully)

Multi-user building

I was wondering if CClash works correctly if I have two builds on the same machine building the same files.
I guess the builtin client-server approach should be used for that? If so, can you provide some documentation on what it does and how to get it working?
Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.