I initially setup a project like this:

PROJECT/
.../build/
.../cmake_modules/
.../resources/
.../source/                         <-- subfolders under sources are shared
libs
.../source/components/
.../source/core_math/
.../source/ren_opengl/
.../source/utils/
.../source/main.c     <-- main() and imported all the shared libs

this setup worked great now I wanted to add another layer to this project

I want to add a top level folder that would contain the project
PROJECT/
.../build/
.../cmake_modules/
*.../project/              <-- want to move main here*
.../project/game.c
.../project/game.h
.../resources/
.../source/                         <-- subfolders under sources are shared
libs
.../source/components/
.../source/core_math/
.../source/ren_opengl/
.../source/utils/
.../source/main.c     <-- main() and imported all the shared libs

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

which would in turn bring all the functions that I described in the
sources/ part of the tree.

How can I accomplish this with cmake?

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.

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(main)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)

FIND_PACKAGE(SDL2 REQUIRED)
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})


INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/core_math")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/utils/time_utils")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/utils/resource_utils")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/ren_opengl")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/components/renderable2d")

INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/source/glm/vec3.hpp")

FIND_PACKAGE(SDL2 REQUIRED)
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})

REQUIRED_VARS SDL2_IMAGE_LIBRARY SDL2_IMAGE_INCLUDE_DIR)
FIND_PACKAGE(SDL2_IMAGE)
INCLUDE_DIRECTORIES(${SDL2_IMAGE_INCLUDE_DIR})

ADD_SUBDIRECTORY(source)
ADD_SUBDIRECTORY(project) //my attempt to add the new directory

SET(SRC_FILES main.c)
SET(EXTERNAL_TARGET_LIBS ${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY})
SET(COMPONENTS renderable2d)
SET(INTERNAL_TARGET_LIBS core_math time_utils resource_utils ren_opengl)

SET(TARGET_LIBS ${INTERNAL_TARGET_LIBS} ${EXTERNAL_TARGET_LIBS}
${COMPONENTS})

ADD_EXECUTABLE(blulauncher ${SRC_FILES})
TARGET_LINK_LIBRARIES(blulauncher ${TARGET_LIBS})


FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/resources/ DESTINATION
${CMAKE_CURRENT_BINARY_DIR}/bin/resources/)
-- 

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 via email to