Is it improper to use add_definitions to set compile flags instead of set_source_files_properties and the COMPILE_FLAGS property? The reason I ask is that I prefer the recursive behavior of add_definitions, but set_source_files_properties appears to be more modern.