CMake build support (#8)

* CMake build support

* Make things nice for VS users

Co-authored-by: Raymonf <Raymonf@users.noreply.github.com>
This commit is contained in:
Raymonf 2020-08-20 15:59:54 -04:00 committed by GitHub
parent 6843faeb8d
commit c549192f59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 0 deletions

3
.gitignore vendored
View File

@ -5,3 +5,6 @@ config.ini
*.o
tags
*~
CMakeFiles/
CMakeCache.txt
build/

27
CMakeLists.txt Normal file
View File

@ -0,0 +1,27 @@
cmake_minimum_required(VERSION 3.16)
project(OpenFusion)
set(CMAKE_CXX_STANDARD 17)
# Disallow in-source builds
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(FATAL_ERROR "In-source builds not allowed. Please refer to the wiki for more information. Please remove the CMakeFiles folder and the CMakeCache.txt file.")
endif()
# Output binaries to the bin folder in the source directory
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
# Put CMake targets (ALL_BUILD/ZERO_CHECK) into a folder
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# Set the OpenFusion project as the default startup project for VS
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT openfusion)
include_directories(src)
file(GLOB_RECURSE SOURCES src/**.cpp src/**.hpp)
add_executable(openfusion ${SOURCES})
# Set the output binary name to winfusion to match the regular Makefile
set_target_properties(openfusion PROPERTIES OUTPUT_NAME winfusion)