Skip to content

Instantly share code, notes, and snippets.

@an-dr
Created April 7, 2019 14:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save an-dr/771f2681dd9d48f011713dae04584048 to your computer and use it in GitHub Desktop.
Save an-dr/771f2681dd9d48f011713dae04584048 to your computer and use it in GitHub Desktop.
CMakeLists.txt - nested source directory
set(PROJECT_NAME libhello)
set(PROJECT_INCLUDES inc_deps include)
set(PROJECT_SRC src/hello.cpp)
cmake_minimum_required(VERSION 3.0)
set(CMAKE_CXX_STANDARD 14)
project(${PROJECT_NAME} LANGUAGES CXX)
# exports ==============================================================================================================
foreach (inc_dir ${PROJECT_INCLUDES})
set(${PROJECT_NAME}_INCLUDES ${${PROJECT_NAME}_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/${inc_dir})
endforeach(inc_dir)
foreach (src ${PROJECT_SRC})
set(${PROJECT_NAME}_SRC ${${PROJECT_NAME}_SRC} ${CMAKE_CURRENT_SOURCE_DIR}/${src})
endforeach(src)
set(${PROJECT_NAME}_INCLUDES ${${PROJECT_NAME}_INCLUDES} PARENT_SCOPE)
set(${PROJECT_NAME}_SRC ${${PROJECT_NAME}_SRC} PARENT_SCOPE)
# exports ==============================================================================================================
include_directories(${PROJECT_INCLUDES})
message(STATUS "== => ${PROJECT_NAME} is loaded")
message(STATUS " Exported ${PROJECT_NAME}_INCLUDES: ${${PROJECT_NAME}_INCLUDES}")
message(STATUS " Exported ${PROJECT_NAME}_SRC: ${${PROJECT_NAME}_SRC}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment