Code Monkey home page Code Monkey logo

mare's People

Contributors

ahasselbring avatar albert-tomanek avatar craflin avatar fthielke avatar l7dpi avatar pyropeter avatar zyrin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mare's Issues

More documentation?

Is there more documentation on Mare somewhere? I'm trying to include a new library to the Bhuman project. The library has a CMake file that would have been easy to include in a CMake project. Is there a easy way to use that CMake file or to include the library with Mare directly? Thank you.

"writeFile" does not create full path to file

Since "writeFile" is a macro that is evaluated at the beginning of the build process, it is a problem that it does not create the full path to the location of the file. When building from scratch, the build directory does not yet exist, which means that "writeFile" cannot be used to create files inside the build directory.

cppCompiler in cmake export

It seems only the first part of the macro cppCompiler is used when mare is used to generate cmake files. We use

cppCompiler = {
    "env CCACHE_CPP2=yes $(utilDirRoot)/Buildchain/Linux/bin/ccache clang++ -D__extern_always_inline=inline"

and the CMakeLists.txt generated just contains

set(CMAKE_CXX_COMPILER "env")

Support for v110_xp

Currently, it is only possible to set the version of Visual Studio as a number. The platform toolset is then derived from that number. However, Visual Studio 2012 actually supports two platform toolsets, namely v110 and v110_xp (for targeting Windows XP). It would be nice if this could be specified somehow (2012xp?).

Targets without 'input' and 'output' variables

Currently when creating a target that just executes a command (eg. 'echo hello'), you still have to specify the 'input' and 'output' variables for it to work, even though they are redundant:

targets = {
	hi = {
		input = "blah"
		output = "blah"
		command = "echo hello"
	}
}

Would it be possible to make them voluntary so that one can just do:

targets = {
	hi = {
		command = "echo hello"
	}
}

Thanks!

Visual Studio and source files with the same name, but different paths

Since Visual Studio writes all output files in the same directory, it cannot handle projects in which several source files have the same name, but are located in different paths. However, mare could generate projects that handle these situations. It seems that it is not possible the generate output files with individual paths, because VS does not create the directories before it tries to write the files.

However, what works is to give the output files different names. I do not have a pull request, because I am not sure how to integrate this elegantly, but something that works in Vcxproj.cpp:1238ff is:

      fileWrite(String("    <") + file.type + " Include=\"" + path + "\">\r\n");
      MD5 md5;
      md5.update((const unsigned char*)path.getData(), path.getLength());
      unsigned char sum[16];
      md5.final(sum);
      char digits[9];
#ifdef WIN32
      sprintf_s
#else
      snprintf
#endif
        (digits, sizeof(digits), "%8x", *(unsigned*)sum);
      fileWrite(String("      <ObjectFileName>$(IntDir)%(Filename)-") + digits + ".obj</ObjectFileName>\r\n");

This adds a 8 digits hex code to each object file that is based on the file's relative path. It requires some minor changes in the code that is following, because a closing tag is now always needed. An even better solution would be to only do this if there are actual duplicates. That's how Xcode does it.

Escaping question marks in strings?

Hi, I'm trying to add a specific linker flag

linkFlags += {
  "/INCLUDE:?warp_size@cuda@at@@YAHXZ"
}

but the question mark makes problems.
Without the question mark the flag is added to the VS project file, otherwise not.

Looked at the parser class and I guess the question mark is interpreted as if condition?

Is there a way to escape the question mark? I already tried backslash and single quotes.

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.