Hi Robert, Yes, we are adding the Keil C8051 compiler, which is very old and uses a very unique command line syntax compared to the others supported by CMake. Also, it's Windows only but Wine works -- so we optionally add Wine on non-Windows platforms. An example would be:
wine C51.exe INCDIR(/path/to/dir/1/, /path/to/dir/2/) DEBUG DEFINE(FOO_FLAG) OBJECT(/path/to/output.obj) /path/to/source.c To achieve this, we use a wrapper cmake script with the following: set(CMAKE_C_COMPILE_OBJECT "cmake\ -DWINE=${WINE}\ -DCOMPILER=<CMAKE_C_COMPILER>\ -DSOURCE=<SOURCE>\ -DINCLUDES=\"<INCLUDES>\"\ -DFLAGS=\"<DEFINES> <FLAGS>\"\ -DOBJECT=<OBJECT>\ -P \"${CMAKE_CURRENT_LIST_DIR}/C8051Compile.cmake\"" ) It was important that <INCLUDES> be separate, as its form is significantly different than most compilers. Prior to cmake 3.4, it would be very difficult to handle this, since <FLAGS> would append the includes as a list of directories, and there is no CMAKE_INCLUDE_FLAG suffix variable (need a closing bracket for INCDIR). > On Jun 30, 2016, at 2:23 PM, Robert Maynard <robert.mayn...@kitware.com> > wrote: > > Hi, > > Can you explain what the goal of your compilation wrappers are? Are > you trying to add a new compiler? > > > > On Wed, Jun 29, 2016 at 1:41 PM, Sam Cristall <crist...@eleveneng.com> wrote: >> Looks like this was just a change in CMake 3.4. Updated to latest, and >> everything is working. >>> On Jun 28, 2016, at 5:19 PM, Sam Cristall <crist...@eleveneng.com> wrote: >>> >>> I'm trying to implement a cross compilation wrapper and hit a snag with >>> CMAKE_C_COMPILE_OBJECT. I've found that on OSX / Linux (Makefile >>> Generator), <INCLUDES> and <FLAGS> work as expected, however on Windows >>> (MinGW Makefile Generator), <FLAGS> has both the flags and includes, >>> whereas <INCLUDES> is undefined. Is this expected? >>> >> -- >> >> Powered by www.kitware.com >> >> Please keep messages on-topic and check the CMake FAQ at: >> http://www.cmake.org/Wiki/CMake_FAQ >> >> Kitware offers various services to support the CMake community. For more >> information on each offering, please visit: >> >> CMake Support: http://cmake.org/cmake/help/support.html >> CMake Consulting: http://cmake.org/cmake/help/consulting.html >> CMake Training Courses: http://cmake.org/cmake/help/training.html >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake