Quantcast

How to exclude some files from building?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

How to exclude some files from building?

kipade
There are some files I do not want to build if the specified condition was ture.
For example, for testing, I want build a new file witch include a main entry just
for testing; if not, a new file would be compile for normal task.
I do not want to write two main entries in the same file just using macros to
control compiling. I want to use different clean and simple files.
So, how to do it?


 


--

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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to exclude some files from building?

Domen Vrankar
2017-03-31 4:41 GMT+02:00 kipade <[hidden email]>:
There are some files I do not want to build if the specified condition was ture.
For example, for testing, I want build a new file witch include a main entry just
for testing; if not, a new file would be compile for normal task.
I do not want to write two main entries in the same file just using macros to
control compiling. I want to use different clean and simple files.
So, how to do it?


You can either use generator expressions:

-------------------------

cmake_minimum_required(VERSION 3.5)

project(dependent CXX)

set(MY_DEPEND "ON" CACHE BOOL "toggle feature")

add_executable(
    ${PROJECT_NAME}
    main.cpp
    $<$<BOOL:${MY_DEPEND}>:first/a.cpp>
    $<$<NOT:$<BOOL:${MY_DEPEND}>>:second/a.cpp>
  )

target_include_directories(
    ${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
  )

-------------------------

Or  add files to a variable:

-------------------------

cmake_minimum_required(VERSION 3.5)

project(dependent CXX)

set(MY_DEPEND "ON" CACHE BOOL "toggle feature")

if(MY_DEPEND)
  set(extra_src_ "first/a.cpp")
else()
  set(extra_src_ "second/a.cpp")
endif()

add_executable(
    ${PROJECT_NAME}
    main.cpp
    ${extra_src_}
  )

target_include_directories(
    ${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
  )

-------------------------

Regards,
Domen

--

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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to exclude some files from building?

kipade
Oh, I got it. I think the first method was so cool.
Thank you very much.


At 2017-03-31 14:10:12, "Domen Vrankar" <[hidden email]> wrote:
2017-03-31 4:41 GMT+02:00 kipade <[hidden email]>:
There are some files I do not want to build if the specified condition was ture.
For example, for testing, I want build a new file witch include a main entry just
for testing; if not, a new file would be compile for normal task.
I do not want to write two main entries in the same file just using macros to
control compiling. I want to use different clean and simple files.
So, how to do it?


You can either use generator expressions:

-------------------------

cmake_minimum_required(VERSION 3.5)

project(dependent CXX)

set(MY_DEPEND "ON" CACHE BOOL "toggle feature")

add_executable(
    ${PROJECT_NAME}
    main.cpp
    $<$<BOOL:${MY_DEPEND}>:first/a.cpp>
    $<$<NOT:$<BOOL:${MY_DEPEND}>>:second/a.cpp>
  )

target_include_directories(
    ${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
  )

-------------------------

Or  add files to a variable:

-------------------------

cmake_minimum_required(VERSION 3.5)

project(dependent CXX)

set(MY_DEPEND "ON" CACHE BOOL "toggle feature")

if(MY_DEPEND)
  set(extra_src_ "first/a.cpp")
else()
  set(extra_src_ "second/a.cpp")
endif()

add_executable(
    ${PROJECT_NAME}
    main.cpp
    ${extra_src_}
  )

target_include_directories(
    ${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
  )

-------------------------

Regards,
Domen


 


--

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
Loading...