add basic c++ project setup
This commit is contained in:
69
CMakeLists.txt
Normal file
69
CMakeLists.txt
Normal file
@@ -0,0 +1,69 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
message(STATUS "Using CMake ${CMAKE_VERSION}")
|
||||
|
||||
include(cmake/add_files.cmake)
|
||||
include(cmake/create_source_groups.cmake)
|
||||
|
||||
# Project ----------------------------------------------------------------------
|
||||
|
||||
project(DotaFactory)
|
||||
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
|
||||
|
||||
# Qt ---------------------------------------------------------------------------
|
||||
|
||||
find_package(Qt5 COMPONENTS Widgets Network Multimedia Charts REQUIRED)
|
||||
|
||||
if(Qt5Widgets_FOUND)
|
||||
message(STATUS "Found Qt ${Qt5Widgets_VERSION_STRING}")
|
||||
|
||||
# FIX: Qt was built with -reduce-relocations
|
||||
if (Qt5_POSITION_INDEPENDENT_CODE)
|
||||
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# Setup ---------------------------------------------------------------------------
|
||||
|
||||
get_filename_component(QT_BINARY_DIR "${QT_MOC_EXECUTABLE}" PATH)
|
||||
set(QT_PLUGINS_DIR "${QT_BINARY_DIR}/../plugins")
|
||||
|
||||
function(COPY_QT_BINARIES TARGET_DIR IS_DEBUG)
|
||||
set(SUFFIX "")
|
||||
if (IS_DEBUG)
|
||||
set(SUFFIX "d")
|
||||
endif()
|
||||
|
||||
set(CONFIGURATION "Release")
|
||||
if (IS_DEBUG)
|
||||
set(CONFIGURATION "Debug")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CL_64)
|
||||
set(BITS "64")
|
||||
else()
|
||||
set(BITS "32")
|
||||
endif()
|
||||
|
||||
configure_file("${QT_BINARY_DIR}/Qt5Charts${SUFFIX}.dll" "${TARGET_DIR}/Qt5Charts${SUFFIX}.dll" COPYONLY)
|
||||
configure_file("${QT_BINARY_DIR}/Qt5Core${SUFFIX}.dll" "${TARGET_DIR}/Qt5Core${SUFFIX}.dll" COPYONLY)
|
||||
configure_file("${QT_BINARY_DIR}/Qt5Gui${SUFFIX}.dll" "${TARGET_DIR}/Qt5Gui${SUFFIX}.dll" COPYONLY)
|
||||
configure_file("${QT_BINARY_DIR}/Qt5Network${SUFFIX}.dll" "${TARGET_DIR}/Qt5Network${SUFFIX}.dll" COPYONLY)
|
||||
configure_file("${QT_BINARY_DIR}/Qt5Widgets${SUFFIX}.dll" "${TARGET_DIR}/Qt5Widgets${SUFFIX}.dll" COPYONLY)
|
||||
configure_file("${QT_BINARY_DIR}/Qt5Multimedia${SUFFIX}.dll" "${TARGET_DIR}/Qt5Multimedia${SUFFIX}.dll" COPYONLY)
|
||||
endfunction(COPY_QT_BINARIES)
|
||||
|
||||
|
||||
# Src ----------------------------------------------------------------------
|
||||
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
||||
set(HEADER_SEARCH_PATHS)
|
||||
set(SYSTEM_HEADER_SEARCH_PATHS)
|
||||
set(LINK_LIBRARIES ${Boost_LIBRARIES} Qt5::Widgets Qt5::Network Qt5::Multimedia Qt5::Charts ${OPENGL_LIBRARIES})
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
Reference in New Issue
Block a user