# Check CMAKE version cmake_minimum_required( VERSION 3.0 ) # Invite message message( STATUS "----------------------------------------------------" ) message( STATUS "- PROJECT GENERATION : Concurrent Programming Tool -" ) message( STATUS "----------------------------------------------------" ) message( STATUS "" ) ################################################################################## # Project ################################################################################## # Project name project( CpViewer ) set( CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install" ) # Remove some compilation warnings add_definitions( -D_CRT_SECURE_NO_WARNINGS ) # GLFW add_definitions( -DGLFW_DLL ) ################################################################################## # Package Management ################################################################################## # OpenGL find_package( OpenGL REQUIRED ) # OpenMP find_package( OpenMP ) ################################################################################## # Include directories ################################################################################## # glad set( glad_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glad/lib/cmake/glad" ) find_package( glad CONFIG REQUIRED ) # glm set( glm_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glm/lib/cmake/glm" ) find_package( glm CONFIG REQUIRED ) include_directories( ${GLM_INCLUDE_DIRS} ) # stb include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/stb" ) # glfw set( glfw3_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glfw/lib/cmake/glfw3 ) find_package( glfw3 CONFIG REQUIRED ) # imgui set( ImGui_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/imgui" ) include_directories( "${ImGui_DIR}/include" ) ################################################################################## # Program ################################################################################## # Retrieve source files file( GLOB incList "${CMAKE_CURRENT_SOURCE_DIR}/*.h" ) file( GLOB srcList "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" ) # Target program add_executable( ${PROJECT_NAME} ${srcList} ${incList} ) ##################################################### set( CUSTOM_DEBUG_POSTFIX "d" ) set_target_properties( ${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX ${CUSTOM_DEBUG_POSTFIX} ) ##################################################### ################################################################################## # Linked libraries ################################################################################## # Graphics target_link_libraries( ${PROJECT_NAME} ${OPENGL_gl_LIBRARY} ) # GLFW target_link_libraries( ${PROJECT_NAME} glfw ) # glad target_link_libraries( ${PROJECT_NAME} glad::glad ) # dlopen/dlclose target_link_libraries( ${PROJECT_NAME} ${CMAKE_DL_LIBS} ) # ImGui if (WIN32) target_link_libraries( ${PROJECT_NAME} debug "${ImGui_DIR}/lib/ImGuid.lib" ) target_link_libraries( ${PROJECT_NAME} optimized "${ImGui_DIR}/lib/ImGui.lib" ) else () target_link_libraries( ${PROJECT_NAME} "${ImGui_DIR}/lib/libImGui" ) endif () # OpenMP if( OpenMP_CXX_FOUND ) target_link_libraries( ${PROJECT_NAME} OpenMP::OpenMP_CXX ) endif() # Project property set_property( TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11 ) ################################################################################## # Custom commands ################################################################################## # Libraries install( TARGETS ${PROJECT_NAME} DESTINATION bin )