Project to enable using CMake from a Maven build.

Overview

CMake-Maven-Project build-status

Introduction

A Maven project for the CMake build system. It can be used by including it as a plugin within your Maven project's pom.xml file.

This repository originally lived on Google Code and was migrated to GitHub (and Git) after Google Code shut down.

Sample Usage

Generate Goal


   
  
    
     com.googlecode.cmake-maven-project
    
  
    
     cmake-maven-plugin
    
  
    
     3.19.2-b1
    
  
    
    
     
      
      
       cmake-generate
      
      
      
        
       
        generate
       
      
      
      
      
        
         
       
        
         
       
        
         
       
        
         
        
         value
         
       
        
         
         
       
      
      
    
     
  
    

   

Compile Goal

value ">

   
  
    
     com.googlecode.cmake-maven-project
    
  
    
     cmake-maven-plugin
    
  
    
     3.19.2-b1
    
  
    
    
     
      
      
       cmake-compile
      
      
      
        
       
        compile
       
      
      
      
      
        
         
       
        
         
       
        
         
       
        
        
        
         value
         
       
      
      
    
     
  
    

   

Test Goal

${project.build.directory} true true true 2 Experimental ">

   
  
    
     com.googlecode.cmake-maven-project
    
  
    
     cmake-maven-plugin
    
  
    
     3.19.2-b1
    
  
    
    
     
      
      
       cmake-test
      
      
      
        
       
        test
       
      
      
      
      
        
        
       
        ${project.build.directory}
       
        
        
       
        true
       
        
        
       
        true
       
        
        
       
        true
       
        
        
       
        2
       
        
        
       
        Experimental
       
      
      
    
     
  
    

   

Examples

The following projects contain examples of how to use this plugin:

Requirements API

Building instructions

To build the plugin, run:

mvn install

To clean an old build, run:

mvn clean

By default, Maven will activate the right profile based on your JVM:

  • windows-x86_64
  • linux-x86_64
  • linux-arm_32
  • mac-x86_64

If detection does not work, or you wish to override it then set -P .

For instance, when building for 64-bit Linux machines, use:

mvn -Plinux-x86_64 install

Using a local CMake installation

Sometimes it is preferable or necessary to use a preexisting CMake installation. cmake.org doesn't provide binaries for some platforms, such as Raspberry Pi. In such cases, users can install the binaries themselves (typically using package managers like apt-get) and point the plugin at them.

  1. Set ${cmake.download} to false.
  2. Optionally set ${cmake.dir} to the directory containing the binaries (e.g. /usr/bin). Otherwise, the plugin will expect the binaries to be on the PATH.

That's it! To learn more about CMake itself, consult the CMake.org website.

License

CMake-Maven-Project is released under an Apache License 2.0

Comments
  • Does not work natively on ARM-based Macs.

    Does not work natively on ARM-based Macs.

    When using this on a native java toolchain with native maven, the following message is encountered: java.lang.AssertionError: Unsupported architecture: aarch64.

    However, it runs under rosetta.

    java -version
    openjdk version "17.0.1" 2021-10-19 LTS
    OpenJDK Runtime Environment Microsoft-28056 (build 17.0.1+12-LTS)
    OpenJDK 64-Bit Server VM Microsoft-28056 (build 17.0.1+12-LTS, mixed mode)
    

    (however is the same for any native java)

    Stack trace:

        at com.googlecode.cmakemavenproject.OperatingSystem$Architecture.lambda$static$0 (OperatingSystem.java:274)
        at org.bitbucket.cowwoc.pouch.ConcurrentLazyReference$1.createValue (ConcurrentLazyReference.java:32)
        at org.bitbucket.cowwoc.pouch.ConcurrentLazyReference.getValue (ConcurrentLazyReference.java:66)
        at com.googlecode.cmakemavenproject.OperatingSystem$Architecture.detected (OperatingSystem.java:283)
        at com.googlecode.cmakemavenproject.OperatingSystem.lambda$static$0 (OperatingSystem.java:25)
        at org.bitbucket.cowwoc.pouch.ConcurrentLazyReference$1.createValue (ConcurrentLazyReference.java:32)
        at org.bitbucket.cowwoc.pouch.ConcurrentLazyReference.getValue (ConcurrentLazyReference.java:66)
        at com.googlecode.cmakemavenproject.OperatingSystem.detected (OperatingSystem.java:35)
        at com.googlecode.cmakemavenproject.CmakeMojo.<init> (CmakeMojo.java:50)
        at com.googlecode.cmakemavenproject.GenerateMojo.<init> (GenerateMojo.java:32)
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:77)
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstanceWithCaller (Constructor.java:499)
        at java.lang.reflect.Constructor.newInstance (Constructor.java:480)
        at com.google.inject.internal.DefaultConstructionProxyFactory$ReflectiveProxy.newInstance (DefaultConstructionProxyFactory.java:126)
        at com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:114)
        at com.google.inject.internal.ConstructorInjector.access$000 (ConstructorInjector.java:32)
        at com.google.inject.internal.ConstructorInjector$1.call (ConstructorInjector.java:98)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:127)
        at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
        at com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:93)
        at com.google.inject.internal.ConstructorBindingImpl$Factory.get (ConstructorBindingImpl.java:306)
        at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
        at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1086)
        at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
        at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)
        at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
        at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:127)
        at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
        at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)
        at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
        at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
        at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)
        at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
        at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
        at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)
        at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)
        at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:520)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:568)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    

    Starting with cmake-3.19, there are arm-native packages available. Is it possible to add support? Seems like a too strict arch check here.

    Best regards.

    enhancement 
    opened by BetterUnborn 20
  • Can not unset or set empty environment variables.

    Can not unset or set empty environment variables.

    If you try to set an environment variable to empty it throws a null pointer exception.

    I think this is because maven treats empty as null and ProcessBuilder.environment() doesn't handle null values.

    A solution would be to check for any keys with null values in environmentVariables and then remove them from ProcessBuilder.environment()

    opened by parched 17
  • Locate cmake on PATH, Windows uses

    Locate cmake on PATH, Windows uses "Path" not "PATH"

    I am seeing MojoExecutionException: cmake not found on PATH: null when trying to locate cmake on the path with Windows. I am guessing this is because Windows uses Path which is not equal to PATH at CmakeMojo.java#L108. Wonder if processBuilder.environment().get("PATH") can be made case insensitive or do I need to hack my Windows Path name?

    opened by kwhat 11
  • Unsupported os.name: SunOS

    Unsupported os.name: SunOS

    The Maven plugin fails when executed on a platform it does not recognize.

    It should only fail when asked to download the binaries for a platform it does not recognize. If using native CMake already on the system it should continue and use those.

    enhancement 
    opened by whittlec 7
  • Cannot use -Ax64 with old maven 3.0.5

    Cannot use -Ax64 with old maven 3.0.5

    [ERROR] Failed to execute goal com.googlecode.cmake-maven-project:cmake-maven-plugin:3.7.2-b1:generate (cmake-generate) on project MorphoLibJ_: Unable to parse configuration of mojo com.googlecode.cmake-maven-project:cmake-maven-plugin:3.7.2-b1:generate for parameter options: Cannot assign configuration entry 'options' with value '-Ax64' of type java.lang.String to property of type java.util.List -> [Help 1]
    

    Does not happen, if newer maven is used, e.g. 3.3.9 as described here: https://github.com/kongchen/swagger-maven-plugin/issues/441

    Any idea how to make cmake.options compatible with older versions of maven?

    opened by dmikushin 6
  • Rename classifiers to match os.arch

    Rename classifiers to match os.arch

    Currently cmake classifier references 32-bit Windows using windows-i386 but the Java system property returns x86 for this platform. As such, we should rename the classifier to windows-x86.

    opened by cowwoc 6
  • Support for Solaris and AIX

    Support for Solaris and AIX

    I've edited the code so it will now build and execute on both Solaris and AIX (#12). The projects I was trying to build on these platforms using this plugin do now build successfully.

    It doesn't download the binaries for these platforms since none are hosted on the CMake web site, so when building you do need to tell it where local copies are using -Dcmake.root.dir=... on the command line. I've not made it include those local copies when building the binaries artifact, so that remains empty.

    opened by whittlec 6
  • Generator Required?

    Generator Required?

    I would like to use this lib without the requirement of setting a specific generator. The reason is, that I actually don't know what kind of environment and compiler the user has. This lib does not depend on an actual generator anyway because it uses --build and --target to compile the project.

    opened by msteinbeck 6
  • NPE when using environmentVariables on Windows

    NPE when using environmentVariables on Windows

    Setting any env var on Windows:

    <environmentVariables> <key>value</key> </environmentVariables>

    produces a NPE with version 3.18.4-b1. Versions 3.17.3-b1 and earlier work great.

    [ERROR] Failed to execute goal com.googlecode.cmake-maven-project:cmake-maven-plugin:3.18.4-b1:generate (cmake-generate) on project use-signaling: Execution cmake-generate of goal com.googlecode.cmake-maven-project:cmake-maven-plugin:3.18.4-b1:generate failed.: NullPointerException -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.googlecode.cmake-maven-project:cmake-maven-plugin:3.18.4-b1:generate (cmake-generate) on project use-signaling: Execution cmake-generate of goal com.googlecode.cmake-maven-project:cmake-maven-plugin:3.18.4-b1:generate failed. at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) at java.lang.reflect.Method.invoke (Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) Caused by: org.apache.maven.plugin.PluginExecutionException: Execution cmake-generate of goal com.googlecode.cmake-maven-project:cmake-maven-plugin:3.18.4-b1:generate failed. at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) at java.lang.reflect.Method.invoke (Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) Caused by: java.lang.NullPointerException at java.lang.ProcessEnvironment.validateName (Unknown Source) at java.lang.ProcessEnvironment.put (Unknown Source) at java.lang.ProcessEnvironment.put (Unknown Source) at com.googlecode.cmakemavenproject.OperatingSystem.overrideEnvironmentVariables (OperatingSystem.java:206) at com.googlecode.cmakemavenproject.CmakeMojo.overrideEnvironmentVariables (CmakeMojo.java:164) at com.googlecode.cmakemavenproject.GenerateMojo.execute (GenerateMojo.java:65) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) at java.lang.reflect.Method.invoke (Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) [ERROR] [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

    opened by julien3 5
  • Cutting edge Maven required

    Cutting edge Maven required

    Hi, The latest release requires a quite new Maven (3.6.1) and as I see this requirement is even stricter in newer commits. The prev release (3.7.2-b1) didn't have a version requirement on Maven itself.

    Is cutting edge really necessary? DevOps in my organization prefers the distro bundled maven version, and they don't like the idea of installing a newer Maven for just this plugin...

    opened by hoditohod 5
  • Removed profile activation

    Removed profile activation

    This PR contains some changes:

    1. Removed automatic profile activation (but added a nice error message if you forget to specify a profile).
    2. Stopped downloading binaries for 32-bit Linux (not my idea, cmake.org no longer provides them).
    3. Added 32-bit Linux and Raspberry Pi Maven profiles that run cmake from a local installation (no need to set download.cmake=false manually any more).
    opened by cowwoc 5
  • Allow running the plugin with Java 8

    Allow running the plugin with Java 8

    Updates the maven-compiler-plugin to use --release 8 so javac builds classes that are compatible to Java 8 and newer.

    This helps people having a code base that still supports Java 8 to use recent versions of this plugin.

    opened by snazy 10
Owner
null
NeoWorld is a resampler using the CMake build system

NeoWorld is a resampler using the CMake build system. It's designed for utsu, OpenUTAU, and UTAU.

null 5 Dec 23, 2022
curl cmake module libcurl build with msvc x86

curl-msvc Infomation curl cmake module libcurl build with MSVC10.0 arch (x86 | i386) source from https://github.com/curl/curl tags: curl-7_79_1 Usage

Jason Payne 0 May 16, 2022
Arduino CMake Build system

Arduino Cmake Example Project This is the Cmake project settings for the Arduino platform. You can use this project as an example to develop C++ progr

Francois Campbell 57 Oct 13, 2022
CMake and other scripts to help build process of FlyEM software

The BuildEM System The buildem repo is a modular CMake-based system that leverages CMake's ExternalProject to simplify and automate a complex build pr

null 27 Jun 9, 2022
An Enhancement Suite for the CMake Build System

A CMake Enhancement Suite Usage Look through the files in the package. Most functions will be commented and the other's usage can be inferred. All fun

Tobias Becker 403 Jan 3, 2023
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

Setup-free CMake dependency management CPM.cmake is a CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper

CPM.cmake 1.6k Jan 9, 2023
CMake checks cache helper modules – for fast CI CMake builds!

cmake-checks-cache Cross platform CMake projects do platform introspection by the means of "Check" macros. Have a look at CMake's How To Write Platfor

Cristian Adam 65 Dec 6, 2022
CMake scripts for painless usage of SuiteSparse+METIS from Visual Studio and the rest of Windows/Linux/OSX IDEs supported by CMake

CMake scripts for painless usage of Tim Davis' SuiteSparse (CHOLMOD,UMFPACK,AMD,LDL,SPQR,...) and METIS from Visual Studio and the rest of Windows/Lin

Jose Luis Blanco-Claraco 395 Dec 24, 2022
cmake-font-lock - Advanced, type aware, highlight support for CMake

cmake-font-lock - Advanced, type aware, highlight support for CMake

Anders Lindgren 39 Oct 2, 2022
cmake-avr - a cmake toolchain for AVR projects

cmake-avr - a cmake toolchain for AVR projects Testing the example provided The toolchain was created and tested within the following environment: Lin

Matthias Kleemann 163 Dec 5, 2022
Make CMake less painful when trying to write Modern Flexible CMake

Izzy's eXtension Modules IXM is a CMake library for writing Modern flexible CMake. This means: Reducing the amount of CMake written Selecting reasonab

IXM 107 Sep 1, 2022
unmaintained - CMake module to activate certain C++ standard, feature checks and appropriate automated workarounds - basically an improved version of cmake-compile-features

Compatibility This library provides an advanced target_compile_features() and write_compiler_detection_header(). The problem with those is that they a

Jonathan Müller 74 Dec 26, 2022
[CMake] [BSD-2] CMake module to find ICU

FindICU.cmake A CMake module to find International Components for Unicode (ICU) Library Note that CMake, since its version 3.7.0, includes a FindICU m

julp 29 Nov 2, 2022
Template for reliable, cross-platform C++ project setup using cmake.

The C++ CMake Project Template cmake-init is a sophisticated copy & paste template for modern C and C++ projects. The main goals include support of al

CG Internals 811 Jan 3, 2023
CMake project for BL602 RISC-V processor

bl602_cmake_base CMake project for BL602 RISC-V processor How to build NOTE : This project uses a pre-compiled version of the Buffalo SDK (bl_iot_sdk)

null 9 Jan 6, 2022
Enhanced CMake Project Manager plugin for Qt Creator

CMakeProjectManager2 Alternative CMake support for Qt Creator. Main differents from original CMakeProject plugin: Project file list readed from file s

Alexander Drozdov 71 Nov 20, 2022
A program that automatically generates CMake and Meson configuration files for your Vala project

Autovala is a program and a library designed to help in the creation of projects with Vala and CMake. It also has support for Genie.

Sergio Costas 108 Oct 15, 2022
Installation example for a C++ project (Windows) with Cmake.

CMakeInstallExample Installation example for a C++ project (Windows) with Cmake. Contents This project demonstrates how to use cmake with cpack to gen

Paul T 30 Jan 3, 2023
Example project which demonstrates various CMake features.

CMake example Example project which demonstrates various CMake features. CDash testing dashboard (probably empty but you can submit your test result t

Radovan Bast 142 Nov 4, 2022