kylemanna
10/3/2015 - 4:43 AM

cmocka.cmake

#
# Unit Test Framework cmocka
#
# Author: Kyle Manna
#

# Enable ExternalProject CMake module
include(ExternalProject)

ExternalProject_Add cmocka_ep
    #URL https://git.cryptomilk.org/projects/cmocka.git/snapshot/cmocka-1.0.1.tar.xz
    #URL_HASH SHA256=b3831d1ced5423890fcca347b40fbeda5b0903fc0296596abf0f68013c9eafdc
    #GIT_REPOSITORY git://git.cryptomilk.org/projects/cmocka.git
    #GIT_TAG cmocka-1.0.1
    # Use git submodule to fetch source manually and in-tree, store in SOURCE_DIR
    SOURCE_DIR ${CMAKE_SOURCE_DIR}/modules/cmocka
    CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
               -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
               -DWITH_STATIC_LIB=ON
               -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=Debug
               -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=Release

    # Don't build unused examples and disable install step
    BUILD_COMMAND $(MAKE) cmocka_static
    INSTALL_COMMAND "")


add_library(cmocka STATIC IMPORTED GLOBAL)
ExternalProject_Get_Property(cmocka_ep binary_dir)
set_property(TARGET cmocka PROPERTY IMPORTED_LOCATION_DEBUG
             "${binary_dir}/src/Debug/libcmocka.a")
set_property(TARGET cmocka PROPERTY IMPORTED_LOCATION_RELEASE
             "${binary_dir}/src/Release/libcmocka.a")
add_dependencies(cmocka cmocka_ep)

ExternalProject_Get_Property(cmocka_ep source_dir)
set(CMOCKA_INCLUDE_DIR ${source_dir}/include GLOBAL)