# Macro utility to clone the Unity submodule. macro( clone_unity ) find_package( Git REQUIRED ) message( "Cloning submodule Unity." ) execute_process( COMMAND rm -rf ${UNITY_DIR} COMMAND ${GIT_EXECUTABLE} submodule update --checkout --init --recursive ${UNITY_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} RESULT_VARIABLE UNITY_CLONE_RESULT ) if( NOT ${UNITY_CLONE_RESULT} STREQUAL "0" ) message( FATAL_ERROR "Failed to clone Unity submodule." ) endif() endmacro() # Macro utility to add library targets for Unity and Unity to build configuration. macro( add_unity_targets ) # Build Configuration for Unity and Unity libraries. list( APPEND UNITY_INCLUDE_DIRS "${UNITY_DIR}/src/" "${UNITY_DIR}/extras/fixture/src" "${UNITY_DIR}/extras/memory/src" ) add_library( unity STATIC "${UNITY_DIR}/src/unity.c" "${UNITY_DIR}/extras/fixture/src/unity_fixture.c" "${UNITY_DIR}/extras/memory/src/unity_memory.c" ) set_target_properties( unity PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib POSITION_INDEPENDENT_CODE ON ) target_include_directories( unity PUBLIC ${UNITY_INCLUDE_DIRS} ) endmacro()