• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1cmake_minimum_required(VERSION 3.8...3.25)
2
3project(fmt-link CXX)
4
5set(BUILD_SHARED_LIBS OFF)
6set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE)
7set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
8
9# Broken LTO on GCC 4
10if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
11  set(BROKEN_LTO ON)
12endif ()
13
14if (NOT BROKEN_LTO AND CMAKE_VERSION VERSION_GREATER "3.8")
15  # CMake 3.9+
16  include(CheckIPOSupported)
17  check_ipo_supported(RESULT HAVE_IPO)
18  if (HAVE_IPO)
19    set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
20  endif ()
21endif ()
22
23add_subdirectory(../.. fmt)
24set_property(TARGET fmt PROPERTY POSITION_INDEPENDENT_CODE ON)
25
26add_library(library-test SHARED library.cc)
27target_link_libraries(library-test PRIVATE fmt::fmt)
28
29add_executable(exe-test main.cc)
30target_link_libraries(exe-test PRIVATE library-test)
31