Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
- project(ChatlabGame)
- # Add .lib files
- link_directories(${CMAKE_SOURCE_DIR}/lib)
- # Configure assets header file
- configure_file(src/helpers/RootDir.h.in src/helpers/RootDir.h)
- include_directories(${CMAKE_BINARY_DIR}/src)
- # Define source files
- file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "src/*.cpp")
- file(GLOB_RECURSE HEADERS RELATIVE ${CMAKE_SOURCE_DIR} "src/*.h")
- # Define the executable
- add_executable(${PROJECT_NAME} ${HEADERS} ${SOURCES})
- include_directories(
- "${CMAKE_SOURCE_DIR}/src"
- "${CMAKE_SOURCE_DIR}/lib"
- )
- # We need a CMAKE_DIR with some code to find external dependencies
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/lib/")
- # glfw
- add_subdirectory(lib/glfw EXCLUDE_FROM_ALL)
- # glew
- add_subdirectory(lib/glew EXCLUDE_FROM_ALL)
- target_include_directories(${PROJECT_NAME} PRIVATE
- ${CMAKE_SOURCE_DIR}/lib/glew/include
- )
- FIND_PACKAGE(GLEW)
- # Put all libraries into a variable
- set(LIBS glfw GL GLEW)
- # Define the include DIRs
- include_directories(
- "${CMAKE_SOURCE_DIR}/src"
- "${CMAKE_SOURCE_DIR}/include"
- )
- # Define the link libraries
- target_link_libraries(${PROJECT_NAME} ${LIBS})
- set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
- # Create virtual folders to make it look nicer in VS
- if (MSVC_IDE)
- # Macro to preserve source files hierarchy in the IDE
- macro(GroupSources curdir)
- file(GLOB children RELATIVE ${PROJECT_SOURCE_DIR}/${curdir} ${PROJECT_SOURCE_DIR}/${curdir}/*)
- foreach (child ${children})
- if (IS_DIRECTORY ${PROJECT_SOURCE_DIR}/${curdir}/${child})
- GroupSources(${curdir}/${child})
- else ()
- string(REPLACE "/" "\\" groupname ${curdir})
- string(REPLACE "src" "Sources" groupname ${groupname})
- source_group(${groupname} FILES ${PROJECT_SOURCE_DIR}/${curdir}/${child})
- endif ()
- endforeach ()
- endmacro()
- # Run macro
- GroupSources(src)
- endif ()
- # Copy dlls
- if (WIN32)
- add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- "${PROJECT_SOURCE_DIR}/dlls"
- $<TARGET_FILE_DIR:${PROJECT_NAME}>)
- endif ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement