Repository: conan-io/conan

Issue:
Apple-clang 9.1 not supported
Please, add apple-clang 9.1 to supported platform. I had problem with compile missing libraries. I fixed it with manually edited ```.conan/settings.yml```

My CMake output:
```
-- The CXX compiler identification is AppleClang 9.1.0.9020039
```

Clang version: 
```sh
$ clang++ -v
Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin17.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
```

Conan version:
```
$ conan -v
Conan version 1.2.0
```

Discussion:

Patch:
diff --git a/conans/__init__.py b/conans/__init__.py
index 97c78e433..2333a851a 100644
--- a/conans/__init__.py
+++ b/conans/__init__.py
@@ -16,5 +16,5 @@ COMPLEX_SEARCH_CAPABILITY = "complex_search"
 SERVER_CAPABILITIES = [COMPLEX_SEARCH_CAPABILITY, ]
 
 
-__version__ = '1.2.0'
+__version__ = '1.2.1'
 
diff --git a/conans/client/build/cppstd_flags.py b/conans/client/build/cppstd_flags.py
index e5ca936c3..5435d63e6 100644
--- a/conans/client/build/cppstd_flags.py
+++ b/conans/client/build/cppstd_flags.py
@@ -26,7 +26,7 @@ def cppstd_flag(compiler, compiler_version, cppstd):
 def cppstd_default(compiler, compiler_version):
     default = {"gcc": _gcc_cppstd_default(compiler_version),
                "clang": _clang_cppstd_default(compiler_version),
-               "apple-clang": "gnu98",
+               "apple-clang": "gnu98",  # Confirmed in apple-clang 9.1 with a simple "auto i=1;"
                "Visual Studio": _visual_cppstd_default(compiler_version)}.get(str(compiler), None)
     return default
 
@@ -85,6 +85,11 @@ def _cppstd_apple_clang(clang_version, cppstd):
         v17 = "c++1z"
         vgnu17 = "gnu++1z"
 
+    if Version(clang_version) >= "9.1":
+        # Not confirmed that it didn't work before 9.1 but 1z is still valid, so we are ok
+        v17 = "c++17"
+        vgnu17 = "gnu++17"
+
     flag = {"98": v98, "gnu98": vgnu98,
             "11": v11, "gnu11": vgnu11,
             "14": v14, "gnu14": vgnu14,
diff --git a/conans/client/conf/__init__.py b/conans/client/conf/__init__.py
index 267416ced..96dd58553 100644
--- a/conans/client/conf/__init__.py
+++ b/conans/client/conf/__init__.py
@@ -65,7 +65,7 @@ compiler:
         version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0", "5.0", "6.0"]
         libcxx: [libstdc++, libstdc++11, libc++]
     apple-clang:
-        version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0"]
+        version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0", "9.1"]
         libcxx: [libstdc++, libc++]
 
 build_type: [None, Debug, Release]
diff --git a/conans/client/migrations.py b/conans/client/migrations.py
index ef0ba6b31..27a86af1f 100644
--- a/conans/client/migrations.py
+++ b/conans/client/migrations.py
@@ -41,7 +41,7 @@ class ClientMigrator(Migrator):
         # VERSION 0.1
         if old_version is None:
             return
-        if old_version < Version("1.1.0-dev"):
+        if old_version < Version("1.2.1"):
             old_settings = """
 # Only for cross building, 'os_build/arch_build' is the system that runs Conan
 os_build: [Windows, WindowsStore, Linux, Macos, FreeBSD, SunOS]
@@ -82,9 +82,9 @@ compiler:
         libcxx: [libCstd, libstdcxx, libstlport, libstdc++]
     gcc:
         version: ["4.1", "4.4", "4.5", "4.6", "4.7", "4.8", "4.9",
-                  "5", "5.1", "5.2", "5.3", "5.4",
+                  "5", "5.1", "5.2", "5.3", "5.4", "5.5",
                   "6", "6.1", "6.2", "6.3", "6.4",
-                  "7", "7.1", "7.2"]
+                  "7", "7.1", "7.2", "7.3"]
         libcxx: [libstdc++, libstdc++11]
         threads: [None, posix, win32] #  Windows MinGW
         exception: [None, dwarf2, sjlj, seh] # Windows MinGW
@@ -93,13 +93,14 @@ compiler:
         version: ["8", "9", "10", "11", "12", "14", "15"]
         toolset: [None, v90, v100, v110, v110_xp, v120, v120_xp, v140, v140_xp, v140_clang_c2, LLVM-vs2014, LLVM-vs2014_xp, v141, v141_xp, v141_clang_c2]
     clang:
-        version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0", "5.0"]
+        version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0", "5.0", "6.0"]
         libcxx: [libstdc++, libstdc++11, libc++]
     apple-clang:
         version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0"]
         libcxx: [libstdc++, libc++]
 
 build_type: [None, Debug, Release]
+cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17]
 """
             self._update_settings_yml(old_settings)
 


Test patch:
diff --git a/conans/test/build_helpers/cpp_std_flags_test.py b/conans/test/build_helpers/cpp_std_flags_test.py
index b110bb3f4..7e7c1c5e4 100644
--- a/conans/test/build_helpers/cpp_std_flags_test.py
+++ b/conans/test/build_helpers/cpp_std_flags_test.py
@@ -136,6 +136,10 @@ class CompilerFlagsTest(unittest.TestCase):
         self.assertEquals(cppstd_flag("apple-clang", "9", "14"), '-std=c++14')
         self.assertEquals(cppstd_flag("apple-clang", "9", "17"), "-std=c++1z")
 
+        self.assertEquals(cppstd_flag("apple-clang", "9.1", "11"), '-std=c++11')
+        self.assertEquals(cppstd_flag("apple-clang", "9.1", "14"), '-std=c++14')
+        self.assertEquals(cppstd_flag("apple-clang", "9.1", "17"), "-std=c++17")
+
     def test_apple_clang_cppstd_defaults(self):
         self.assertEquals(cppstd_default("apple-clang", "2"), "gnu98")
         self.assertEquals(cppstd_default("apple-clang", "3"), "gnu98")