macro (soil_get_properties)
  set(soil_target soil)
  get_target_property(soil_source soil SOURCES)
  get_target_property(soil_source_dir soil SOURCE_DIR)
  set(soil_include_directory ${soil_source_dir}/inc)
  list(TRANSFORM soil_source PREPEND "${soil_source_dir}/")
endmacro (soil_get_properties)

macro (soil_set_properties)
  if (MSVC)
    list(APPEND soil_definitions
      _CRT_SECURE_NO_WARNINGS)
    set(soil_flags "/wd4018 /wd4244 /wd4267")
  endif (MSVC)
  if (soil_definitions)
    target_compile_definitions(soil PUBLIC ${soil_definitions})
  endif ()
  if (soil_flags)
    set_target_properties(soil PROPERTIES COMPILE_FLAGS ${soil_flags})
  endif ()
endmacro (soil_set_properties)
