Browse Source

CMake: Use LTO on all compilers where supported (#330)

* CMakeLists.txt: Fix indentation

* CMake: Bump minimum required version: 3.7 -> 3.10

This simplifies LTO support
pull/331/head^2
Gleb Mazovetskiy 7 years ago committed by Anders Jenbo
parent
commit
10733ffff6
  1. 12
      .circleci/config.yml
  2. 7
      .editorconfig
  3. 33
      CMakeLists.txt

12
.circleci/config.yml

@ -7,8 +7,8 @@ jobs:
steps:
- checkout
- run: apt-get update -y
- run: apt-get install -y cmake g++ libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev
- run: apt-get install -y -t stretch-backports libsodium-dev
- run: apt-get install -y g++ libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev
- run: apt-get install -y -t stretch-backports cmake libsodium-dev
- run: mkdir build
- run: cd build && cmake ..
- run: cd build && make -j$(nproc)
@ -20,8 +20,8 @@ jobs:
steps:
- checkout
- run: apt-get update -y
- run: apt-get install -y cmake g++ libsdl-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
- run: apt-get install -y -t stretch-backports libsodium-dev
- run: apt-get install -y g++ libsdl-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
- run: apt-get install -y -t stretch-backports cmake libsodium-dev
- run: mkdir build
- run: cd build && cmake .. -DUSE_SDL1=ON
- run: cd build && make -j$(nproc)
@ -34,8 +34,8 @@ jobs:
- checkout
- run: dpkg --add-architecture i386
- run: apt-get update -y
- run: apt-get install -y cmake g++-multilib libsdl2-dev:i386 libsdl2-mixer-dev:i386 libsdl2-ttf-dev:i386 libsodium-dev
- run: apt-get install -y -t stretch-backports libsodium-dev:i386
- run: apt-get install -y g++-multilib libsdl2-dev:i386 libsdl2-mixer-dev:i386 libsdl2-ttf-dev:i386 libsodium-dev
- run: apt-get install -y -t stretch-backports cmake libsodium-dev:i386
- run: mkdir build
- run: cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../CMake/32bit.cmake ..
- run: cd build && make -j$(nproc)

7
.editorconfig

@ -16,3 +16,10 @@ end_of_line = lf
[.clang-format]
end_of_line = lf
[.gitignore]
end_of_line = lf
[CMakeLists.txt]
indent_style = space
indent_size = 2

33
CMakeLists.txt

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.10)
include(CMake/out_of_tree.cmake)
@ -28,7 +28,16 @@ if(BINARY_RELEASE)
set(DEBUG OFF)
set(DIST ON)
set(FASTER OFF)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
# Use LTO on all compilers where it is supported.
include(CheckIPOSupported)
check_ipo_supported(RESULT result)
if(result)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
message(STATUS "LTO enabled")
else()
message(WARNING "LTO not supported by this compiler and/or CMake version")
endif()
endif()
if(NIGHTLY_BUILD)
@ -69,17 +78,17 @@ if(NOT NONET)
endif()
if(USE_SDL1)
find_package(SDL REQUIRED)
find_package(SDL_ttf REQUIRED)
find_package(SDL_mixer REQUIRED)
include_directories(${SDL_INCLUDE_DIR})
find_package(SDL REQUIRED)
find_package(SDL_ttf REQUIRED)
find_package(SDL_mixer REQUIRED)
include_directories(${SDL_INCLUDE_DIR})
else()
find_package(SDL2 CONFIG QUIET)
if (NOT SDL2_FOUND)
find_package(SDL2 REQUIRED)
endif()
find_package(SDL2_ttf REQUIRED)
find_package(SDL2_mixer REQUIRED)
find_package(SDL2 CONFIG QUIET)
if (NOT SDL2_FOUND)
find_package(SDL2 REQUIRED)
endif()
find_package(SDL2_ttf REQUIRED)
find_package(SDL2_mixer REQUIRED)
endif()
add_library(smacker STATIC

Loading…
Cancel
Save