<div dir="ltr">I initially setup a project like this:<div><br></div><div>PROJECT/</div><div>.../build/</div><div>.../cmake_modules/</div><div>.../resources/</div><div>.../source/                         <-- subfolders under sources are shared libs</div><div>.../source/components/ <br></div><div>.../source/core_math/<br></div><div>.../source/ren_opengl/<br></div><div>.../source/utils/<br></div><div>.../source/main.c     <-- main() and imported all the shared libs<br></div><div><br></div><div>this setup worked great now I wanted to add another layer to this project</div><div><br></div><div>I want to add a top level folder that would contain the project</div><div><div>PROJECT/</div><div>.../build/</div><div>.../cmake_modules/</div><div><b>.../project/              <-- want to move main here</b></div><div>.../project/game.c<b><br></b></div><div>.../project/game.h<br></div><div>.../resources/</div><div>.../source/                         <-- subfolders under sources are shared libs</div><div>.../source/components/ <br></div><div>.../source/core_math/<br></div><div>.../source/ren_opengl/<br></div><div>.../source/utils/<br></div><div>.../source/main.c     <-- main() and imported all the shared libs</div></div><div><br></div><div>I want to move the main application starter from under the sources folder to it's own folder under the project sub folder and be able to just import say main_libs.h</div><div><br></div><div>which would in turn bring all the functions that I described in the sources/ part of the tree.</div><div><br></div><div>How can I accomplish this with cmake?</div><div><br></div><div>This is what the main.c cmakelists file looks like atm. This is the cmakelists.txt that starts the whole build down through all the dynamic libs. Each dynamic lib folder just has a .h .c and maybe some simple header includes.</div><div><br></div><div><div>CMAKE_MINIMUM_REQUIRED(VERSION 2.8)</div><div><br></div><div>PROJECT(main)</div><div><br></div><div>set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)</div><div>set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)</div><div>set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)</div><div><br></div><div>set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)</div><div><br></div><div>FIND_PACKAGE(SDL2 REQUIRED)</div><div>INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})</div><div><br></div><div><br></div><div>INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/core_math")</div><div>INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/utils/time_utils")</div><div>INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/utils/resource_utils")</div><div>INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/ren_opengl")</div><div>INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/components/renderable2d")</div><div><br></div><div>INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/glm/vec3.hpp")</div><div><br></div><div>FIND_PACKAGE(SDL2 REQUIRED)</div><div>INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})</div><div><br></div><div>REQUIRED_VARS SDL2_IMAGE_LIBRARY SDL2_IMAGE_INCLUDE_DIR)</div><div>FIND_PACKAGE(SDL2_IMAGE)</div><div>INCLUDE_DIRECTORIES(${SDL2_IMAGE_INCLUDE_DIR})</div><div><br></div><div>ADD_SUBDIRECTORY(source)</div><div>ADD_SUBDIRECTORY(project) //my attempt to add the new directory<br></div><div><br></div><div>SET(SRC_FILES main.c)</div><div>SET(EXTERNAL_TARGET_LIBS ${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY})</div><div>SET(COMPONENTS renderable2d)</div><div>SET(INTERNAL_TARGET_LIBS core_math time_utils resource_utils ren_opengl)</div><div><br></div><div>SET(TARGET_LIBS ${INTERNAL_TARGET_LIBS} ${EXTERNAL_TARGET_LIBS} ${COMPONENTS})</div><div><br></div><div>ADD_EXECUTABLE(blulauncher ${SRC_FILES})</div><div>TARGET_LINK_LIBRARIES(blulauncher ${TARGET_LIBS})</div><div><br></div><div><br></div><div>FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/resources/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin/resources/)</div></div><div><br></div><div><br></div><div><br></div></div>