Skip to content

Commit 023358d

Browse files
committed
Fix HighDPI support, remove cxxbasics, improve LTO + PIE detection (oguzhaninan#418)
1 parent a44d056 commit 023358d

16 files changed

+35
-595
lines changed

.travis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
language: cpp
22
compiler: clang
33
sudo: require
4-
dist: trusty
4+
dist: xenial
55
before_install:
6-
- sudo add-apt-repository ppa:beineri/opt-qt591-trusty -y
6+
- sudo add-apt-repository ppa:beineri/opt-qt-5.15.0-xenial -y
77
- sudo apt-get update -qq
88
install:
99
- sudo apt-get -y -qq install cmake
10-
- sudo apt-get -y -qq install libgl1-mesa-dev qt59base qt59imageformats qt59svg qt59charts-no-lgpl qt59tools
10+
- sudo apt-get -y -qq install libgl1-mesa-dev qt515base qt515imageformats qt515svg qt515charts-no-lgpl qt515tools
1111
- source /opt/qt*/bin/qt*-env.sh
1212
before_script:
1313
- mkdir build && cd build

CMakeLists.txt

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,36 @@
11
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
22
project(Stacer)
33

4-
# Adding features(build cache + faster linkers) and reasonable defaults(Debug build by default)
5-
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cxxbasics/CXXBasics.cmake")
4+
# Build with PIC and PIE(default: ON)
5+
option(CMAKE_POSITION_INDEPENDENT_CODE "Determines whether position independent executables or shared libraries will be created" ON)
6+
7+
# Build with LTO(default: OFF)
8+
option(CMAKE_INTERPROCEDURAL_OPTIMIZATION "If set to true, enables interprocedural optimizations if they are known to be supported by the compiler" OFF)
9+
10+
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release" OR "${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel")
11+
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
12+
endif()
13+
14+
# Apply PIE flags if cmake_minimum_required is over 3.14(see policy CMP0083)
15+
if(POLICY CMP0083)
16+
cmake_policy(SET CMP0083 NEW)
17+
include(CheckPIESupported)
18+
check_pie_supported()
19+
set(CMAKE_POLICY_DEFAULT_CMP0083 NEW)
20+
endif(POLICY CMP0083)
21+
22+
# Build with LTO, if explicitly enabled
23+
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
24+
if(POLICY CMP0069)
25+
cmake_policy(SET CMP0069 NEW)
26+
include(CheckIPOSupported)
27+
check_ipo_supported()
28+
29+
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
30+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CXX_FLAGS}")
31+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_CXX_FLAGS}")
32+
endif(POLICY CMP0069)
33+
endif(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
634

735
# Setting a cleaner directory structure for the generated binaries
836
set(CMAKE_BINARY_DIR "${CMAKE_BINARY_DIR}/output")

cmake/cxxbasics/CXXBasics.cmake

Lines changed: 0 additions & 20 deletions
This file was deleted.

cmake/cxxbasics/DefaultSettings.cmake

Lines changed: 0 additions & 9 deletions
This file was deleted.

cmake/cxxbasics/InitCXXBasics.cmake

Lines changed: 0 additions & 13 deletions
This file was deleted.

cmake/cxxbasics/UNLICENSE

Lines changed: 0 additions & 24 deletions
This file was deleted.

cmake/cxxbasics/accelerators/UseCCache.cmake

Lines changed: 0 additions & 15 deletions
This file was deleted.

cmake/cxxbasics/accelerators/UseCompilerCacheTool.cmake

Lines changed: 0 additions & 26 deletions
This file was deleted.

cmake/cxxbasics/accelerators/UseFasterLinkers.cmake

Lines changed: 0 additions & 105 deletions
This file was deleted.

cmake/cxxbasics/accelerators/UseSCCache.cmake

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)