mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
193 lines
4.4 KiB
CMake
193 lines
4.4 KiB
CMake
##-----------------------------------------------------------------------------
|
|
##
|
|
## Copyright (C) 2015-2016 David Hill
|
|
##
|
|
## See COPYING for license information.
|
|
##
|
|
##-----------------------------------------------------------------------------
|
|
##
|
|
## Root CMake file.
|
|
##
|
|
##-----------------------------------------------------------------------------
|
|
|
|
cmake_minimum_required(VERSION 2.6)
|
|
|
|
cmake_policy(SET CMP0017 NEW)
|
|
|
|
project(acsvm)
|
|
|
|
include(CheckCCompilerFlag)
|
|
include(CheckCXXCompilerFlag)
|
|
|
|
|
|
##----------------------------------------------------------------------------|
|
|
## Functions |
|
|
##
|
|
|
|
##
|
|
## ACSVM_INSTALL_EXE
|
|
##
|
|
function(ACSVM_INSTALL_EXE name)
|
|
if(ACSVM_INSTALL_EXE)
|
|
install(TARGETS ${name}
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib
|
|
)
|
|
endif()
|
|
endfunction()
|
|
|
|
##
|
|
## ACSVM_INSTALL_LIB
|
|
##
|
|
function(ACSVM_INSTALL_LIB name)
|
|
if(ACSVM_INSTALL_LIB)
|
|
if(ACSVM_INSTALL_API)
|
|
install(TARGETS ${name}
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib
|
|
)
|
|
elseif(ACSVM_SHARED)
|
|
install(TARGETS ${name}
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib
|
|
)
|
|
endif()
|
|
endif()
|
|
endfunction()
|
|
|
|
##
|
|
## ACSVM_TRY_C_FLAG
|
|
##
|
|
function(ACSVM_TRY_C_FLAG flag name)
|
|
CHECK_C_COMPILER_FLAG(${flag} ACSVM_C_FLAG_${name})
|
|
|
|
if(ACSVM_C_FLAG_${name})
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}" PARENT_SCOPE)
|
|
endif()
|
|
endfunction()
|
|
|
|
##
|
|
## ACSVM_TRY_CXX_FLAG
|
|
##
|
|
function(ACSVM_TRY_CXX_FLAG flag name)
|
|
CHECK_CXX_COMPILER_FLAG(${flag} ACSVM_CXX_FLAG_${name})
|
|
|
|
if(ACSVM_CXX_FLAG_${name})
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE)
|
|
endif()
|
|
endfunction()
|
|
|
|
|
|
##----------------------------------------------------------------------------|
|
|
## Environment Detection |
|
|
##
|
|
|
|
set(ACSVM_SHARED_DEFAULT ON)
|
|
|
|
if(NOT ACSVM_NOFLAGS)
|
|
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
|
ACSVM_TRY_C_FLAG(-Wall Wall)
|
|
ACSVM_TRY_C_FLAG(-Wextra Wextra)
|
|
|
|
ACSVM_TRY_C_FLAG(-std=c11 STD_C)
|
|
endif()
|
|
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
ACSVM_TRY_CXX_FLAG(-Wall Wall)
|
|
ACSVM_TRY_CXX_FLAG(-Wextra Wextra)
|
|
|
|
ACSVM_TRY_CXX_FLAG(-std=c++11 STD_CXX)
|
|
endif()
|
|
endif()
|
|
|
|
if(MSVC)
|
|
# Disable shared by default, as the source does not contain the needed
|
|
# declaration annotations to make that work under MSVC.
|
|
set(ACSVM_SHARED_DEFAULT OFF)
|
|
endif()
|
|
|
|
|
|
##----------------------------------------------------------------------------|
|
|
## Variables |
|
|
##
|
|
|
|
##
|
|
## ACSVM_INSTALL_API
|
|
##
|
|
if(NOT DEFINED ACSVM_INSTALL_API)
|
|
set(ACSVM_INSTALL_API ON CACHE BOOL "Install ACSVM headers.")
|
|
endif()
|
|
|
|
##
|
|
## ACSVM_INSTALL_DOC
|
|
##
|
|
if(NOT DEFINED ACSVM_INSTALL_DOC)
|
|
set(ACSVM_INSTALL_DOC ON CACHE BOOL "Install ACSVM documentation.")
|
|
endif()
|
|
|
|
##
|
|
## ACSVM_INSTALL_EXE
|
|
##
|
|
if(NOT DEFINED ACSVM_INSTALL_EXE)
|
|
set(ACSVM_INSTALL_EXE ON CACHE BOOL "Install ACSVM executables.")
|
|
endif()
|
|
|
|
##
|
|
## ACSVM_INSTALL_LIB
|
|
##
|
|
if(NOT DEFINED ACSVM_INSTALL_LIB)
|
|
set(ACSVM_INSTALL_LIB ON CACHE BOOL "Install ACSVM libraries.")
|
|
endif()
|
|
|
|
##
|
|
## ACSVM_SHARED
|
|
##
|
|
## If true (or equiavalent), libraries will be built as SHARED. Otherwise,
|
|
## they are built as STATIC.
|
|
##
|
|
if(NOT DEFINED ACSVM_SHARED)
|
|
set(ACSVM_SHARED ${ACSVM_SHARED_DEFAULT} CACHE BOOL
|
|
"Build libraries as shared objects.")
|
|
endif()
|
|
|
|
##
|
|
## ACSVM_SHARED_DECL
|
|
##
|
|
## Used internally for convenience in add_library commands.
|
|
##
|
|
if(ACSVM_SHARED)
|
|
set(ACSVM_SHARED_DECL SHARED)
|
|
else()
|
|
set(ACSVM_SHARED_DECL STATIC)
|
|
endif()
|
|
|
|
|
|
##----------------------------------------------------------------------------|
|
|
## Environment Configuration |
|
|
##
|
|
|
|
include_directories(.)
|
|
|
|
|
|
##----------------------------------------------------------------------------|
|
|
## Targets |
|
|
##
|
|
|
|
add_subdirectory(ACSVM)
|
|
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/CAPI")
|
|
add_subdirectory(CAPI)
|
|
endif()
|
|
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/Exec")
|
|
add_subdirectory(Exec)
|
|
endif()
|
|
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/Util")
|
|
add_subdirectory(Util)
|
|
endif()
|
|
|
|
## EOF
|
|
|