# Variable that you need to define to use this template # IS_LIBRARY, USE_SFML, USE_RENDERER, USE_INPUT, USE_BULLET,USE_OPENGL # # Container for list of file to be compiled : # LIB_SRC_LIST, LIB_HEAD_LIST, EXEC_SRC_LIST, EXEC_HEAD_LIST # # Variable available to extend include_dir locations # INCLUDE_PATHS_EXTENSION # EXTRA_INCLUDE #detect system if(WIN32) set(SYSTEM_LIB_PATH "win32") else(WIN32) set(SYSTEM_LIB_PATH "linux") endif(WIN32) #set dependencies paths set(DEPENDENCIES_ROOT ${PROJECT_SOURCE_DIR}/../cpp_dependencies) set(INCLUDE_ROOT ${DEPENDENCIES_ROOT}/include) set(LIB_ROOT ${DEPENDENCIES_ROOT}/lib/${SYSTEM_LIB_PATH}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIB_ROOT}) #for SHARED set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIB_ROOT}) #for STATIC #create library and executable if(IS_LIBRARY) set(LIBRARY_NAME ${PROJECT_NAME}) set(EXECUTABLE_NAME "test${PROJECT_NAME}") add_library(${LIBRARY_NAME} STATIC ${LIB_SRC_LIST} ${LIB_HEAD_LIST}) else() set(EXECUTABLE_NAME "${PROJECT_NAME}") endif() add_executable(${EXECUTABLE_NAME} ${EXEC_SRC_LIST}) add_definitions(-std=c++11) LIST(APPEND INCLUDE_PATHS ${INCLUDE_ROOT}) foreach(EXTENSION ${INCLUDE_PATHS_EXTENSION}) LIST(APPEND INCLUDE_PATHS ${INCLUDE_ROOT}${EXTENSION} " ") endforeach() include_directories( ${INCLUDE_PATHS} ${EXTRA_INCLUDE} ) #find libraries set(DEP_LIST "") if(USE_SFML) find_library(SFML_LIBRARY_WINDOW NAMES sfml-window PATHS ${LIB_ROOT} ) find_library(SFML_LIBRARY_SYSTEM NAMES sfml-system PATHS ${LIB_ROOT} ) LIST(APPEND DEP_LIST ${SFML_LIBRARY_WINDOW} ${SFML_LIBRARY_SYSTEM}) endif() if(USE_RENDERER) find_library(SPARROW_RENDERER_LIBRARY NAMES sparrowrenderer PATHS ${LIB_ROOT} ) LIST(APPEND DEP_LIST ${SPARROW_RENDERER_LIBRARY}) endif() if(USE_INPUT) find_library(SPARROW_INPUT_LIBRARY NAMES SparrowInput PATHS ${LIB_ROOT} ) LIST(APPEND DEP_LIST ${SPARROW_INPUT_LIBRARY}) endif() if(USE_BULLET) find_library(BULLET_COLLISION_LIBRARY NAMES BulletCollision PATHS ${LIB_ROOT} ) find_library(BULLET_DYNAMICS_LIBRARY NAMES BulletDynamics PATHS ${LIB_ROOT} ) find_library(LINEAR_MATH_LIBRARY NAMES LinearMath PATHS ${LIB_ROOT} ) LIST(APPEND DEP_LIST ${BULLET_COLLISION_LIBRARY} ${BULLET_DYNAMICS_LIBRARY} ${LINEAR_MATH_LIBRARY}) endif() if(USE_OPENGL) find_package(OpenGL REQUIRED) LIST(APPEND DEP_LIST ${OPENGL_LIBRARIES}) endif() if(IS_LIBRARY) target_link_libraries( ${LIBRARY_NAME} ${DEP_LIST} ) target_link_libraries( ${EXECUTABLE_NAME} ${LIBRARY_NAME} ) else() target_link_libraries( ${EXECUTABLE_NAME} ${DEP_LIST} ) endif()