Skip to content

Instantly share code, notes, and snippets.

@an-dr
Last active April 7, 2019 15:05
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/cee58b52eec3467249ba4ed1aa3704ac to your computer and use it in GitHub Desktop.
Save an-dr/cee58b52eec3467249ba4ed1aa3704ac to your computer and use it in GitHub Desktop.
CMakeLists.txt for general purposes
set(PROJECT_NAME libhello)
set(PROJECT_INCLUDES inc_deps include)
set(PROJECT_SRC src/hello.cpp)
#set(MAIN_SRC main.cpp) # Main
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}")
#add_executable(${PROJECT_NAME} ${MAIN_SRC} ${PROJECT_SRC} ${PROJECT_INCLUDES})
#add_library(${PROJECT_NAME} ${PROJECT_SRC} ${PROJECT_INCLUDES})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment