CMakeLists.txt 1.36 KB
Newer Older
1
cmake_minimum_required (VERSION 2.8.12)
2 3 4 5 6 7 8

include (utils.cmake)

disallow_intree_builds()

project (utf8proc C)

9 10 11
# This is the ABI version number, which may differ from the
# API version number (defined in utf8proc.h).
# Be sure to also update these in Makefile and MANIFEST!
12
set(SO_MAJOR 2)
Mo Zhou's avatar
Mo Zhou committed
13 14 15 16
set(SO_MINOR 3)
set(SO_PATCH 1)

option(UTF8PROC_INSTALL "Enable installation of utf8proc" On)
17 18 19 20 21 22

add_library (utf8proc
  utf8proc.c
  utf8proc.h
)

Mo Zhou's avatar
Mo Zhou committed
23 24 25
# expose header path, for when this is part of a larger cmake project
target_include_directories(utf8proc PUBLIC ../utf8proc)

26 27 28 29 30 31 32 33 34 35 36 37
if (BUILD_SHARED_LIBS)
  # Building shared library
else()
  # Building static library
  target_compile_definitions(utf8proc PUBLIC "UTF8PROC_STATIC")
  if (MSVC)
    set_target_properties(utf8proc PROPERTIES OUTPUT_NAME "utf8proc_static")
  endif()
endif()

target_compile_definitions(utf8proc PRIVATE "UTF8PROC_EXPORTS")

Mo Zhou's avatar
Mo Zhou committed
38 39 40 41 42 43 44
if (NOT MSVC)
  set_target_properties(
    utf8proc PROPERTIES
    COMPILE_FLAGS "-O2 -std=c99 -pedantic -Wall"
  )
endif ()

45 46 47 48 49
set_target_properties (utf8proc PROPERTIES
  POSITION_INDEPENDENT_CODE ON
  VERSION "${SO_MAJOR}.${SO_MINOR}.${SO_PATCH}"
  SOVERSION ${SO_MAJOR}
)
50

Mo Zhou's avatar
Mo Zhou committed
51 52 53 54 55
if (UTF8PROC_INSTALL)
  install(TARGETS utf8proc
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION lib
    ARCHIVE DESTINATION lib)
56

Mo Zhou's avatar
Mo Zhou committed
57 58 59 60 61
  install(
    FILES
      "${PROJECT_SOURCE_DIR}/utf8proc.h"
    DESTINATION include)
endif()