oSz
oSz

Reputation: 63

Executing make from cmake

I started learning about cmake and make recently and I ran into a problem I am unable to solve.
I have two projects, a small test application that uses cmake in the IDE CLion and a librarie that uses make, I can't change the build systems for either. I would like to build the one that uses make, from the cmake project. The make file for the library works fine on it's own.

This is the project layout:

project/CMakeLists.txt
project/libvz/Makefile
project/libvz/main.cpp

I have tried the following:

CMakeLists.txt:

cmake_minimum_required(VERSION 3.0.0)
project(builder)

add_custom_target("libvz"
                  "/usr/bin/make -f ${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")

In this case I get the error: "/bin/sh: /usr/bin/make -f /home/szil/project/libvz/Makefile: No such file or directory"

I also tried to build using the ExternalProject_Add and ExternalProject_Add_Step commands, but neither worked for me.

Any help is appreciated, Thx!

Upvotes: 3

Views: 7011

Answers (1)

Fraser
Fraser

Reputation: 78418

You probably just need to avoid wrapping the entire make command in a set of quotation marks. By doing this, CMake is looking for an executable called "/usr/bin/make -f ...".

add_custom_target(libvz
                  /usr/bin/make -f "${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")

On the face of it, ExternalProject_Add sounds like a better tool for this job - maybe it wasn't working for the same reason as this?

Upvotes: 5

Related Questions