project(cmocka-library C) set(CMOCKA_PLATFORM_INCLUDE CACHE PATH "Path to include directory for cmocka_platform.h") set(CMOCKA_PUBLIC_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/include ${CMOCKA_PLATFORM_INCLUDE} CACHE INTERNAL "cmocka public include directories" ) set(CMOCKA_PRIVATE_INCLUDE_DIRS ${CMAKE_BINARY_DIR} ) set(CMOCKA_SHARED_LIBRARY cmocka_shared CACHE INTERNAL "cmocka shared library" ) if (WITH_STATIC_LIB) set(CMOCKA_STATIC_LIBRARY cmocka_static CACHE INTERNAL "cmocka static library" ) endif (WITH_STATIC_LIB) set(CMOCKA_LINK_LIBRARIES ${CMOCKA_REQUIRED_LIBRARIES} CACHE INTERNAL "cmocka link libraries" ) set(cmocka_SRCS cmocka.c ) if (WIN32) set(cmocka_SRCS ${cmocka_SRCS} cmocka.def ) endif (WIN32) include_directories( ${CMOCKA_PUBLIC_INCLUDE_DIRS} ${CMOCKA_PRIVATE_INCLUDE_DIRS} ) add_definitions(-DHAVE_CONFIG_H=1) if (CMOCKA_PLATFORM_INCLUDE) add_definitions(-DCMOCKA_PLATFORM_INCLUDE=1) endif() add_library(${CMOCKA_SHARED_LIBRARY} SHARED ${cmocka_SRCS}) target_link_libraries(${CMOCKA_SHARED_LIBRARY} ${CMOCKA_LINK_LIBRARIES}) set_target_properties( ${CMOCKA_SHARED_LIBRARY} PROPERTIES OUTPUT_NAME cmocka DEFINE_SYMBOL CMOCKA_EXPORTS ) if (NOT WIN32) set_target_properties( ${CMOCKA_SHARED_LIBRARY} PROPERTIES VERSION ${LIBRARY_VERSION} SOVERSION ${LIBRARY_SOVERSION} ) endif (NOT WIN32) install( TARGETS ${CMOCKA_SHARED_LIBRARY} RUNTIME DESTINATION ${BIN_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries ) if (WITH_STATIC_LIB) add_library(${CMOCKA_STATIC_LIBRARY} STATIC ${cmocka_SRCS}) set_target_properties( ${CMOCKA_STATIC_LIBRARY} PROPERTIES VERSION ${LIBRARY_VERSION} SOVERSION ${LIBRARY_SOVERSION} OUTPUT_NAME cmocka ) install( TARGETS ${CMOCKA_STATIC_LIBRARY} DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries ) endif (WITH_STATIC_LIB) if (POLICY CMP0026) cmake_policy(SET CMP0026 OLD) endif() # # In order to run tests we will need to set the approriate environment # variable so that the test program can locate its dependent DLL's. First # we want to know what directory our dependent DLL was installed into: # get_target_property(_cmocka_dir cmocka_shared LOCATION_${CMOCKA_BUILD_TYPE}) get_filename_component(_cmocka_path "${_cmocka_dir}" PATH) file(TO_NATIVE_PATH "${_cmocka_path}" _cmocka_path_native) set(CMOCKA_DLL_PATH "${_cmocka_path_native}" PARENT_SCOPE)