Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CMake add_executable in another directory [duplicate]

Tags:

c++

cmake

I am making a bunch of tests in order to verify that each library are correctly linked, and then some tests for the functionalities of my code.

I would like to have X different executable in the directory project/build/tests and I want my program to be build in project/build

cmake_minimum_required(VERSION 3.0)
project(ProjectName)
# Linking library ...
add_executable(${PROJECT_NAME} ${SRC_LIST} ${INCLUDE_LIST})

until here, everything is fine and works as wanted but then I don't know how to tell cmake to create my tests in another directory as this does not work

add_executable(tests/OpenMP_Check tests/openmp.cpp)

my project has this architecture :

project :

  • src
  • include
  • lib
  • build
    • tests
  • tests

To put it in a nutshell : How do I ask CMake to create my tests in another directory ?

like image 538
Patafikss Avatar asked Dec 17 '22 23:12

Patafikss


1 Answers

Thanks to arrowd I managed to do it with these lines

add_executable(OpenMP_Check tests/openmp.cpp)
set_target_properties(OpenMP_Check PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests")

After looking for the way to use "set_target_properties" (and the doc of CMake is honestly unreadable) I found this thread, which makes this question a duplicate. how do I make cmake output into a 'bin' dir?

like image 99
Patafikss Avatar answered Dec 28 '22 19:12

Patafikss