CMakeLists.txt 1.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
#####################################################
# FILE NAME CMakeLists.txt                          #
#                                                   #
# PURPOSE contains CMake statements.                #
#                                                   #
#####################################################
cmake_minimum_required(VERSION 3.13.2.0 FATAL_ERROR)



#
#  CMake: Declare project
#
project(unity LANGUAGES C DESCRIPTION "C Unit testing framework.")



#
#  CMake: Creation of library   
#
add_library("unity" STATIC)



#
#  CMake: Adding source to target
#
target_sources("unity" PRIVATE "src/unity.c")



#
#  CMake: Including directories to target
#
target_include_directories("unity" 
    PUBLIC 
        "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
        "$<INSTALL_INTERFACE:src>"

    PRIVATE "src"
)



#
#  CMake: Give target an alias 
#
add_library("unity::framework" ALIAS "unity")



#
#  CMake: export project
#
install(TARGETS "unity" EXPORT "unityConfig"
    ARCHIVE  DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_INSTALL_LIBDIR}"
    LIBRARY  DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_INSTALL_LIBDIR}"
    RUNTIME  DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_INSTALL_BINDIR}"

    INCLUDES DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)

install(DIRECTORY src/ DESTINATION src)

install(EXPORT unityConfig DESTINATION share/unityConfig/cmake)

# This makes the project importable from the build directory
export(TARGETS unity FILE unityConfig.cmake)