We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[package] proj/7.1.1: Fails to build on iOS
<!-- 
  Please don't forget to update the issue title.
  Include all applicable information to help us reproduce your problem.
-->

### Package and Environment Details (include every applicable attribute)
  * Package Name/Version: **proj/7.1.1**
  * Operating System+version: **iOS 11.0**
  * Compiler+version: **apple-clang 11.0**
  * Conan version: **conan 1.29.2**
  * Python version: **Python 3.8.5**

### Conan profile
```
[settings]
arch=armv8
arch_build=x86_64
build_type=Release
compiler=apple-clang
compiler.libcxx=libc++
compiler.version=11.0
os=iOS
os.version=11.0
os_build=Macos
[options]
*:build_executable=False
proj:with_curl=False
proj:with_tiff=False
[build_requires]
*: darwin-toolchain/1.0.8@theodelrieu/stable
[env]
```


### Steps to reproduce (Include if Applicable)

`conan install proj/7.1.0@ --profile ios11-arm64 -o '*:build_executable=False' -o 'proj:with_tiff=False' -o 'proj:with_curl=False' --build=missing`

### Logs (Include/Attach if Applicable)
<details><summary>Click to expand log</summary>

```
CMake Error at source_subfolder/src/bin_cct.cmake:14 (install):
  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
  target "cct".
Call Stack (most recent call first):
  source_subfolder/src/CMakeLists.txt:45 (include)


CMake Error at source_subfolder/src/bin_cs2cs.cmake:13 (install):
  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
  target "cs2cs".
Call Stack (most recent call first):
  source_subfolder/src/CMakeLists.txt:50 (include)


CMake Error at source_subfolder/src/bin_geod.cmake:15 (install):
  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
  target "geod".
Call Stack (most recent call first):
  source_subfolder/src/CMakeLists.txt:55 (include)


CMake Error at source_subfolder/src/bin_proj.cmake:16 (install):
  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
  target "binproj".
Call Stack (most recent call first):
  source_subfolder/src/CMakeLists.txt:63 (include)


CMake Error at source_subfolder/src/bin_projinfo.cmake:12 (install):
  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
  target "binprojinfo".
Call Stack (most recent call first):
  source_subfolder/src/CMakeLists.txt:68 (include)


CMake Error at source_subfolder/src/bin_gie.cmake:14 (install):
  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
  target "gie".
Call Stack (most recent call first):
  source_subfolder/src/CMakeLists.txt:73 (include)
```

</details>

I would suggest adding an option that disables all the executable targets from being generated and built, like `build_executables`. Alternatively, the recipe could define individual `build_` options for each executable, but I don't know how worthwhile that level of granularity is since these are not large applications. (I personally prefer the single `build_executables` option.)

For reference, `glslang` provides this `build_executables` option to enable/disable its binaries, while `sqlite3`, `bzip2`, and `spirv-cross` provide the similarly named `build_executable` option for their (single) binary executable.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `recipes/proj/all/conanfile.py`
Content:
```
1 import os
2 
3 from conans import ConanFile, CMake, tools, RunEnvironment
4 
5 required_conan_version = ">=1.28.0"
6 
7 class ProjConan(ConanFile):
8     name = "proj"
9     description = "Cartographic Projections and Coordinate Transformations Library."
10     license = "MIT"
11     topics = ("conan", "dsp", "proj", "proj4", "projections", "gis", "geospatial")
12     homepage = "https://proj.org"
13     url = "https://github.com/conan-io/conan-center-index"
14     exports_sources = ["CMakeLists.txt", "patches/**"]
15     generators = "cmake", "cmake_find_package"
16     settings = "os", "arch", "compiler", "build_type"
17     options = {
18         "shared": [True, False],
19         "fPIC": [True, False],
20         "threadsafe": [True, False],
21         "with_tiff": [True, False],
22         "with_curl": [True, False]
23     }
24     default_options = {
25         "shared": False,
26         "fPIC": True,
27         "threadsafe": True,
28         "with_tiff": True,
29         "with_curl": True
30     }
31 
32     _cmake = None
33 
34     @property
35     def _source_subfolder(self):
36         return "source_subfolder"
37 
38     def config_options(self):
39         if self.settings.os == "Windows":
40             del self.options.fPIC
41         if tools.Version(self.version) < "7.0.0":
42             del self.options.with_tiff
43             del self.options.with_curl
44 
45     def configure(self):
46         if self.options.shared:
47             del self.options.fPIC
48 
49     def requirements(self):
50         self.requires("sqlite3/3.32.3")
51         if self.options.get_safe("with_tiff"):
52             self.requires("libtiff/4.1.0")
53         if self.options.get_safe("with_curl"):
54             self.requires("libcurl/7.72.0")
55 
56     def build_requirements(self):
57         self.build_requires("sqlite3/3.32.3")
58 
59     def source(self):
60         tools.get(**self.conan_data["sources"][self.version])
61         os.rename(self.name + "-" + self.version, self._source_subfolder)
62 
63     def build(self):
64         self._patch_sources()
65         with tools.environment_append(RunEnvironment(self).vars):
66             cmake = self._configure_cmake()
67             cmake.build()
68 
69     def _patch_sources(self):
70         for patch in self.conan_data.get("patches", {}).get(self.version, []):
71             tools.patch(**patch)
72         tools.replace_in_file(os.path.join(self._source_subfolder, "CMakeLists.txt"), "/W4", "")
73 
74     def _configure_cmake(self):
75         if self._cmake:
76             return self._cmake
77         self._cmake = CMake(self)
78         self._cmake.definitions["USE_THREAD"] = self.options.threadsafe
79         self._cmake.definitions["BUILD_CCT"] = True
80         self._cmake.definitions["BUILD_CS2CS"] = True
81         self._cmake.definitions["BUILD_GEOD"] = True
82         self._cmake.definitions["BUILD_GIE"] = True
83         self._cmake.definitions["BUILD_PROJ"] = True
84         self._cmake.definitions["BUILD_PROJINFO"] = True
85         self._cmake.definitions["PROJ_DATA_SUBDIR"] = "res"
86         if tools.Version(self.version) < "7.0.0":
87             self._cmake.definitions["PROJ_TESTS"] = False
88             self._cmake.definitions["BUILD_LIBPROJ_SHARED"] = self.options.shared
89             self._cmake.definitions["ENABLE_LTO"] = False
90             self._cmake.definitions["JNI_SUPPORT"] = False
91         else:
92             self._cmake.definitions["ENABLE_TIFF"] = self.options.with_tiff
93             self._cmake.definitions["ENABLE_CURL"] = self.options.with_curl
94             self._cmake.definitions["BUILD_TESTING"] = False
95             self._cmake.definitions["ENABLE_IPO"] = False
96             self._cmake.definitions["BUILD_PROJSYNC"] = self.options.with_curl
97         self._cmake.configure()
98         return self._cmake
99 
100     def package(self):
101         self.copy("COPYING", dst="licenses", src=self._source_subfolder)
102         cmake = self._configure_cmake()
103         cmake.install()
104         tools.rmdir(os.path.join(self.package_folder, "share"))
105         tools.rmdir(os.path.join(self.package_folder, "lib", "cmake"))
106 
107     def package_info(self):
108         proj_version = tools.Version(self.version)
109         cmake_config_filename = "proj" if proj_version >= "7.0.0" else "proj4"
110         cmake_namespace = "PROJ" if proj_version >= "7.0.0" else "PROJ4"
111         self.cpp_info.filenames["cmake_find_package"] = cmake_config_filename
112         self.cpp_info.filenames["cmake_find_package_multi"] = cmake_config_filename
113         self.cpp_info.names["cmake_find_package"] = cmake_namespace
114         self.cpp_info.names["cmake_find_package_multi"] = cmake_namespace
115         self.cpp_info.components["projlib"].names["cmake_find_package"] = "proj"
116         self.cpp_info.components["projlib"].names["cmake_find_package_multi"] = "proj"
117         self.cpp_info.components["projlib"].libs = tools.collect_libs(self)
118         if self.settings.os == "Linux":
119             self.cpp_info.components["projlib"].system_libs.append("m")
120             if self.options.threadsafe:
121                 self.cpp_info.components["projlib"].system_libs.append("pthread")
122         elif self.settings.os == "Windows":
123             if proj_version >= "7.0.0":
124                 self.cpp_info.components["projlib"].system_libs.append("shell32")
125             if proj_version >= "7.1.0":
126                 self.cpp_info.components["projlib"].system_libs.append("Ole32")
127         if not self.options.shared and tools.stdcpp_library(self):
128             self.cpp_info.components["projlib"].system_libs.append(tools.stdcpp_library(self))
129         self.cpp_info.components["projlib"].requires.append("sqlite3::sqlite3")
130         if self.options.get_safe("with_tiff"):
131             self.cpp_info.components["projlib"].requires.append("libtiff::libtiff")
132         if self.options.get_safe("with_curl"):
133             self.cpp_info.components["projlib"].requires.append("libcurl::libcurl")
134         if self.options.shared and self.settings.compiler == "Visual Studio":
135             self.cpp_info.components["projlib"].defines.append("PROJ_MSVC_DLL_IMPORT")
136 
137         res_path = os.path.join(self.package_folder, "res")
138         self.output.info("Appending PROJ_LIB environment variable: {}".format(res_path))
139         self.env_info.PROJ_LIB.append(res_path)
140         bin_path = os.path.join(self.package_folder, "bin")
141         self.output.info("Appending PATH environment variable: {}".format(bin_path))
142         self.env_info.PATH.append(bin_path)
143
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/recipes/proj/all/conanfile.py b/recipes/proj/all/conanfile.py
--- a/recipes/proj/all/conanfile.py
+++ b/recipes/proj/all/conanfile.py
@@ -19,14 +19,16 @@
         "fPIC": [True, False],
         "threadsafe": [True, False],
         "with_tiff": [True, False],
-        "with_curl": [True, False]
+        "with_curl": [True, False],
+        "build_executables": [True, False]
     }
     default_options = {
         "shared": False,
         "fPIC": True,
         "threadsafe": True,
         "with_tiff": True,
-        "with_curl": True
+        "with_curl": True,
+        "build_executables": True
     }
 
     _cmake = None
@@ -76,12 +78,12 @@
             return self._cmake
         self._cmake = CMake(self)
         self._cmake.definitions["USE_THREAD"] = self.options.threadsafe
-        self._cmake.definitions["BUILD_CCT"] = True
-        self._cmake.definitions["BUILD_CS2CS"] = True
-        self._cmake.definitions["BUILD_GEOD"] = True
-        self._cmake.definitions["BUILD_GIE"] = True
-        self._cmake.definitions["BUILD_PROJ"] = True
-        self._cmake.definitions["BUILD_PROJINFO"] = True
+        self._cmake.definitions["BUILD_CCT"] = self.options.build_executables
+        self._cmake.definitions["BUILD_CS2CS"] = self.options.build_executables
+        self._cmake.definitions["BUILD_GEOD"] = self.options.build_executables
+        self._cmake.definitions["BUILD_GIE"] = self.options.build_executables
+        self._cmake.definitions["BUILD_PROJ"] = self.options.build_executables
+        self._cmake.definitions["BUILD_PROJINFO"] = self.options.build_executables
         self._cmake.definitions["PROJ_DATA_SUBDIR"] = "res"
         if tools.Version(self.version) < "7.0.0":
             self._cmake.definitions["PROJ_TESTS"] = False
@@ -93,7 +95,7 @@
             self._cmake.definitions["ENABLE_CURL"] = self.options.with_curl
             self._cmake.definitions["BUILD_TESTING"] = False
             self._cmake.definitions["ENABLE_IPO"] = False
-            self._cmake.definitions["BUILD_PROJSYNC"] = self.options.with_curl
+            self._cmake.definitions["BUILD_PROJSYNC"] = self.options.build_executables and self.options.with_curl
         self._cmake.configure()
         return self._cmake
 
@@ -137,6 +139,7 @@
         res_path = os.path.join(self.package_folder, "res")
         self.output.info("Appending PROJ_LIB environment variable: {}".format(res_path))
         self.env_info.PROJ_LIB.append(res_path)
-        bin_path = os.path.join(self.package_folder, "bin")
-        self.output.info("Appending PATH environment variable: {}".format(bin_path))
-        self.env_info.PATH.append(bin_path)
+        if self.options.build_executables:
+            bin_path = os.path.join(self.package_folder, "bin")
+            self.output.info("Appending PATH environment variable: {}".format(bin_path))
+            self.env_info.PATH.append(bin_path)

{"golden_diff": "diff --git a/recipes/proj/all/conanfile.py b/recipes/proj/all/conanfile.py\n--- a/recipes/proj/all/conanfile.py\n+++ b/recipes/proj/all/conanfile.py\n@@ -19,14 +19,16 @@\n         \"fPIC\": [True, False],\n         \"threadsafe\": [True, False],\n         \"with_tiff\": [True, False],\n-        \"with_curl\": [True, False]\n+        \"with_curl\": [True, False],\n+        \"build_executables\": [True, False]\n     }\n     default_options = {\n         \"shared\": False,\n         \"fPIC\": True,\n         \"threadsafe\": True,\n         \"with_tiff\": True,\n-        \"with_curl\": True\n+        \"with_curl\": True,\n+        \"build_executables\": True\n     }\n \n     _cmake = None\n@@ -76,12 +78,12 @@\n             return self._cmake\n         self._cmake = CMake(self)\n         self._cmake.definitions[\"USE_THREAD\"] = self.options.threadsafe\n-        self._cmake.definitions[\"BUILD_CCT\"] = True\n-        self._cmake.definitions[\"BUILD_CS2CS\"] = True\n-        self._cmake.definitions[\"BUILD_GEOD\"] = True\n-        self._cmake.definitions[\"BUILD_GIE\"] = True\n-        self._cmake.definitions[\"BUILD_PROJ\"] = True\n-        self._cmake.definitions[\"BUILD_PROJINFO\"] = True\n+        self._cmake.definitions[\"BUILD_CCT\"] = self.options.build_executables\n+        self._cmake.definitions[\"BUILD_CS2CS\"] = self.options.build_executables\n+        self._cmake.definitions[\"BUILD_GEOD\"] = self.options.build_executables\n+        self._cmake.definitions[\"BUILD_GIE\"] = self.options.build_executables\n+        self._cmake.definitions[\"BUILD_PROJ\"] = self.options.build_executables\n+        self._cmake.definitions[\"BUILD_PROJINFO\"] = self.options.build_executables\n         self._cmake.definitions[\"PROJ_DATA_SUBDIR\"] = \"res\"\n         if tools.Version(self.version) < \"7.0.0\":\n             self._cmake.definitions[\"PROJ_TESTS\"] = False\n@@ -93,7 +95,7 @@\n             self._cmake.definitions[\"ENABLE_CURL\"] = self.options.with_curl\n             self._cmake.definitions[\"BUILD_TESTING\"] = False\n             self._cmake.definitions[\"ENABLE_IPO\"] = False\n-            self._cmake.definitions[\"BUILD_PROJSYNC\"] = self.options.with_curl\n+            self._cmake.definitions[\"BUILD_PROJSYNC\"] = self.options.build_executables and self.options.with_curl\n         self._cmake.configure()\n         return self._cmake\n \n@@ -137,6 +139,7 @@\n         res_path = os.path.join(self.package_folder, \"res\")\n         self.output.info(\"Appending PROJ_LIB environment variable: {}\".format(res_path))\n         self.env_info.PROJ_LIB.append(res_path)\n-        bin_path = os.path.join(self.package_folder, \"bin\")\n-        self.output.info(\"Appending PATH environment variable: {}\".format(bin_path))\n-        self.env_info.PATH.append(bin_path)\n+        if self.options.build_executables:\n+            bin_path = os.path.join(self.package_folder, \"bin\")\n+            self.output.info(\"Appending PATH environment variable: {}\".format(bin_path))\n+            self.env_info.PATH.append(bin_path)\n", "issue": "[package] proj/7.1.1: Fails to build on iOS\n<!-- \r\n  Please don't forget to update the issue title.\r\n  Include all applicable information to help us reproduce your problem.\r\n-->\r\n\r\n### Package and Environment Details (include every applicable attribute)\r\n  * Package Name/Version: **proj/7.1.1**\r\n  * Operating System+version: **iOS 11.0**\r\n  * Compiler+version: **apple-clang 11.0**\r\n  * Conan version: **conan 1.29.2**\r\n  * Python version: **Python 3.8.5**\r\n\r\n### Conan profile\r\n```\r\n[settings]\r\narch=armv8\r\narch_build=x86_64\r\nbuild_type=Release\r\ncompiler=apple-clang\r\ncompiler.libcxx=libc++\r\ncompiler.version=11.0\r\nos=iOS\r\nos.version=11.0\r\nos_build=Macos\r\n[options]\r\n*:build_executable=False\r\nproj:with_curl=False\r\nproj:with_tiff=False\r\n[build_requires]\r\n*: darwin-toolchain/1.0.8@theodelrieu/stable\r\n[env]\r\n```\r\n\r\n\r\n### Steps to reproduce (Include if Applicable)\r\n\r\n`conan install proj/7.1.0@ --profile ios11-arm64 -o '*:build_executable=False' -o 'proj:with_tiff=False' -o 'proj:with_curl=False' --build=missing`\r\n\r\n### Logs (Include/Attach if Applicable)\r\n<details><summary>Click to expand log</summary>\r\n\r\n```\r\nCMake Error at source_subfolder/src/bin_cct.cmake:14 (install):\r\n  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable\r\n  target \"cct\".\r\nCall Stack (most recent call first):\r\n  source_subfolder/src/CMakeLists.txt:45 (include)\r\n\r\n\r\nCMake Error at source_subfolder/src/bin_cs2cs.cmake:13 (install):\r\n  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable\r\n  target \"cs2cs\".\r\nCall Stack (most recent call first):\r\n  source_subfolder/src/CMakeLists.txt:50 (include)\r\n\r\n\r\nCMake Error at source_subfolder/src/bin_geod.cmake:15 (install):\r\n  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable\r\n  target \"geod\".\r\nCall Stack (most recent call first):\r\n  source_subfolder/src/CMakeLists.txt:55 (include)\r\n\r\n\r\nCMake Error at source_subfolder/src/bin_proj.cmake:16 (install):\r\n  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable\r\n  target \"binproj\".\r\nCall Stack (most recent call first):\r\n  source_subfolder/src/CMakeLists.txt:63 (include)\r\n\r\n\r\nCMake Error at source_subfolder/src/bin_projinfo.cmake:12 (install):\r\n  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable\r\n  target \"binprojinfo\".\r\nCall Stack (most recent call first):\r\n  source_subfolder/src/CMakeLists.txt:68 (include)\r\n\r\n\r\nCMake Error at source_subfolder/src/bin_gie.cmake:14 (install):\r\n  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable\r\n  target \"gie\".\r\nCall Stack (most recent call first):\r\n  source_subfolder/src/CMakeLists.txt:73 (include)\r\n```\r\n\r\n</details>\r\n\r\nI would suggest adding an option that disables all the executable targets from being generated and built, like `build_executables`. Alternatively, the recipe could define individual `build_` options for each executable, but I don't know how worthwhile that level of granularity is since these are not large applications. (I personally prefer the single `build_executables` option.)\r\n\r\nFor reference, `glslang` provides this `build_executables` option to enable/disable its binaries, while `sqlite3`, `bzip2`, and `spirv-cross` provide the similarly named `build_executable` option for their (single) binary executable.\n", "before_files": [{"content": "import os\n\nfrom conans import ConanFile, CMake, tools, RunEnvironment\n\nrequired_conan_version = \">=1.28.0\"\n\nclass ProjConan(ConanFile):\n    name = \"proj\"\n    description = \"Cartographic Projections and Coordinate Transformations Library.\"\n    license = \"MIT\"\n    topics = (\"conan\", \"dsp\", \"proj\", \"proj4\", \"projections\", \"gis\", \"geospatial\")\n    homepage = \"https://proj.org\"\n    url = \"https://github.com/conan-io/conan-center-index\"\n    exports_sources = [\"CMakeLists.txt\", \"patches/**\"]\n    generators = \"cmake\", \"cmake_find_package\"\n    settings = \"os\", \"arch\", \"compiler\", \"build_type\"\n    options = {\n        \"shared\": [True, False],\n        \"fPIC\": [True, False],\n        \"threadsafe\": [True, False],\n        \"with_tiff\": [True, False],\n        \"with_curl\": [True, False]\n    }\n    default_options = {\n        \"shared\": False,\n        \"fPIC\": True,\n        \"threadsafe\": True,\n        \"with_tiff\": True,\n        \"with_curl\": True\n    }\n\n    _cmake = None\n\n    @property\n    def _source_subfolder(self):\n        return \"source_subfolder\"\n\n    def config_options(self):\n        if self.settings.os == \"Windows\":\n            del self.options.fPIC\n        if tools.Version(self.version) < \"7.0.0\":\n            del self.options.with_tiff\n            del self.options.with_curl\n\n    def configure(self):\n        if self.options.shared:\n            del self.options.fPIC\n\n    def requirements(self):\n        self.requires(\"sqlite3/3.32.3\")\n        if self.options.get_safe(\"with_tiff\"):\n            self.requires(\"libtiff/4.1.0\")\n        if self.options.get_safe(\"with_curl\"):\n            self.requires(\"libcurl/7.72.0\")\n\n    def build_requirements(self):\n        self.build_requires(\"sqlite3/3.32.3\")\n\n    def source(self):\n        tools.get(**self.conan_data[\"sources\"][self.version])\n        os.rename(self.name + \"-\" + self.version, self._source_subfolder)\n\n    def build(self):\n        self._patch_sources()\n        with tools.environment_append(RunEnvironment(self).vars):\n            cmake = self._configure_cmake()\n            cmake.build()\n\n    def _patch_sources(self):\n        for patch in self.conan_data.get(\"patches\", {}).get(self.version, []):\n            tools.patch(**patch)\n        tools.replace_in_file(os.path.join(self._source_subfolder, \"CMakeLists.txt\"), \"/W4\", \"\")\n\n    def _configure_cmake(self):\n        if self._cmake:\n            return self._cmake\n        self._cmake = CMake(self)\n        self._cmake.definitions[\"USE_THREAD\"] = self.options.threadsafe\n        self._cmake.definitions[\"BUILD_CCT\"] = True\n        self._cmake.definitions[\"BUILD_CS2CS\"] = True\n        self._cmake.definitions[\"BUILD_GEOD\"] = True\n        self._cmake.definitions[\"BUILD_GIE\"] = True\n        self._cmake.definitions[\"BUILD_PROJ\"] = True\n        self._cmake.definitions[\"BUILD_PROJINFO\"] = True\n        self._cmake.definitions[\"PROJ_DATA_SUBDIR\"] = \"res\"\n        if tools.Version(self.version) < \"7.0.0\":\n            self._cmake.definitions[\"PROJ_TESTS\"] = False\n            self._cmake.definitions[\"BUILD_LIBPROJ_SHARED\"] = self.options.shared\n            self._cmake.definitions[\"ENABLE_LTO\"] = False\n            self._cmake.definitions[\"JNI_SUPPORT\"] = False\n        else:\n            self._cmake.definitions[\"ENABLE_TIFF\"] = self.options.with_tiff\n            self._cmake.definitions[\"ENABLE_CURL\"] = self.options.with_curl\n            self._cmake.definitions[\"BUILD_TESTING\"] = False\n            self._cmake.definitions[\"ENABLE_IPO\"] = False\n            self._cmake.definitions[\"BUILD_PROJSYNC\"] = self.options.with_curl\n        self._cmake.configure()\n        return self._cmake\n\n    def package(self):\n        self.copy(\"COPYING\", dst=\"licenses\", src=self._source_subfolder)\n        cmake = self._configure_cmake()\n        cmake.install()\n        tools.rmdir(os.path.join(self.package_folder, \"share\"))\n        tools.rmdir(os.path.join(self.package_folder, \"lib\", \"cmake\"))\n\n    def package_info(self):\n        proj_version = tools.Version(self.version)\n        cmake_config_filename = \"proj\" if proj_version >= \"7.0.0\" else \"proj4\"\n        cmake_namespace = \"PROJ\" if proj_version >= \"7.0.0\" else \"PROJ4\"\n        self.cpp_info.filenames[\"cmake_find_package\"] = cmake_config_filename\n        self.cpp_info.filenames[\"cmake_find_package_multi\"] = cmake_config_filename\n        self.cpp_info.names[\"cmake_find_package\"] = cmake_namespace\n        self.cpp_info.names[\"cmake_find_package_multi\"] = cmake_namespace\n        self.cpp_info.components[\"projlib\"].names[\"cmake_find_package\"] = \"proj\"\n        self.cpp_info.components[\"projlib\"].names[\"cmake_find_package_multi\"] = \"proj\"\n        self.cpp_info.components[\"projlib\"].libs = tools.collect_libs(self)\n        if self.settings.os == \"Linux\":\n            self.cpp_info.components[\"projlib\"].system_libs.append(\"m\")\n            if self.options.threadsafe:\n                self.cpp_info.components[\"projlib\"].system_libs.append(\"pthread\")\n        elif self.settings.os == \"Windows\":\n            if proj_version >= \"7.0.0\":\n                self.cpp_info.components[\"projlib\"].system_libs.append(\"shell32\")\n            if proj_version >= \"7.1.0\":\n                self.cpp_info.components[\"projlib\"].system_libs.append(\"Ole32\")\n        if not self.options.shared and tools.stdcpp_library(self):\n            self.cpp_info.components[\"projlib\"].system_libs.append(tools.stdcpp_library(self))\n        self.cpp_info.components[\"projlib\"].requires.append(\"sqlite3::sqlite3\")\n        if self.options.get_safe(\"with_tiff\"):\n            self.cpp_info.components[\"projlib\"].requires.append(\"libtiff::libtiff\")\n        if self.options.get_safe(\"with_curl\"):\n            self.cpp_info.components[\"projlib\"].requires.append(\"libcurl::libcurl\")\n        if self.options.shared and self.settings.compiler == \"Visual Studio\":\n            self.cpp_info.components[\"projlib\"].defines.append(\"PROJ_MSVC_DLL_IMPORT\")\n\n        res_path = os.path.join(self.package_folder, \"res\")\n        self.output.info(\"Appending PROJ_LIB environment variable: {}\".format(res_path))\n        self.env_info.PROJ_LIB.append(res_path)\n        bin_path = os.path.join(self.package_folder, \"bin\")\n        self.output.info(\"Appending PATH environment variable: {}\".format(bin_path))\n        self.env_info.PATH.append(bin_path)\n", "path": "recipes/proj/all/conanfile.py"}], "after_files": [{"content": "import os\n\nfrom conans import ConanFile, CMake, tools, RunEnvironment\n\nrequired_conan_version = \">=1.28.0\"\n\nclass ProjConan(ConanFile):\n    name = \"proj\"\n    description = \"Cartographic Projections and Coordinate Transformations Library.\"\n    license = \"MIT\"\n    topics = (\"conan\", \"dsp\", \"proj\", \"proj4\", \"projections\", \"gis\", \"geospatial\")\n    homepage = \"https://proj.org\"\n    url = \"https://github.com/conan-io/conan-center-index\"\n    exports_sources = [\"CMakeLists.txt\", \"patches/**\"]\n    generators = \"cmake\", \"cmake_find_package\"\n    settings = \"os\", \"arch\", \"compiler\", \"build_type\"\n    options = {\n        \"shared\": [True, False],\n        \"fPIC\": [True, False],\n        \"threadsafe\": [True, False],\n        \"with_tiff\": [True, False],\n        \"with_curl\": [True, False],\n        \"build_executables\": [True, False]\n    }\n    default_options = {\n        \"shared\": False,\n        \"fPIC\": True,\n        \"threadsafe\": True,\n        \"with_tiff\": True,\n        \"with_curl\": True,\n        \"build_executables\": True\n    }\n\n    _cmake = None\n\n    @property\n    def _source_subfolder(self):\n        return \"source_subfolder\"\n\n    def config_options(self):\n        if self.settings.os == \"Windows\":\n            del self.options.fPIC\n        if tools.Version(self.version) < \"7.0.0\":\n            del self.options.with_tiff\n            del self.options.with_curl\n\n    def configure(self):\n        if self.options.shared:\n            del self.options.fPIC\n\n    def requirements(self):\n        self.requires(\"sqlite3/3.32.3\")\n        if self.options.get_safe(\"with_tiff\"):\n            self.requires(\"libtiff/4.1.0\")\n        if self.options.get_safe(\"with_curl\"):\n            self.requires(\"libcurl/7.72.0\")\n\n    def build_requirements(self):\n        self.build_requires(\"sqlite3/3.32.3\")\n\n    def source(self):\n        tools.get(**self.conan_data[\"sources\"][self.version])\n        os.rename(self.name + \"-\" + self.version, self._source_subfolder)\n\n    def build(self):\n        self._patch_sources()\n        with tools.environment_append(RunEnvironment(self).vars):\n            cmake = self._configure_cmake()\n            cmake.build()\n\n    def _patch_sources(self):\n        for patch in self.conan_data.get(\"patches\", {}).get(self.version, []):\n            tools.patch(**patch)\n        tools.replace_in_file(os.path.join(self._source_subfolder, \"CMakeLists.txt\"), \"/W4\", \"\")\n\n    def _configure_cmake(self):\n        if self._cmake:\n            return self._cmake\n        self._cmake = CMake(self)\n        self._cmake.definitions[\"USE_THREAD\"] = self.options.threadsafe\n        self._cmake.definitions[\"BUILD_CCT\"] = self.options.build_executables\n        self._cmake.definitions[\"BUILD_CS2CS\"] = self.options.build_executables\n        self._cmake.definitions[\"BUILD_GEOD\"] = self.options.build_executables\n        self._cmake.definitions[\"BUILD_GIE\"] = self.options.build_executables\n        self._cmake.definitions[\"BUILD_PROJ\"] = self.options.build_executables\n        self._cmake.definitions[\"BUILD_PROJINFO\"] = self.options.build_executables\n        self._cmake.definitions[\"PROJ_DATA_SUBDIR\"] = \"res\"\n        if tools.Version(self.version) < \"7.0.0\":\n            self._cmake.definitions[\"PROJ_TESTS\"] = False\n            self._cmake.definitions[\"BUILD_LIBPROJ_SHARED\"] = self.options.shared\n            self._cmake.definitions[\"ENABLE_LTO\"] = False\n            self._cmake.definitions[\"JNI_SUPPORT\"] = False\n        else:\n            self._cmake.definitions[\"ENABLE_TIFF\"] = self.options.with_tiff\n            self._cmake.definitions[\"ENABLE_CURL\"] = self.options.with_curl\n            self._cmake.definitions[\"BUILD_TESTING\"] = False\n            self._cmake.definitions[\"ENABLE_IPO\"] = False\n            self._cmake.definitions[\"BUILD_PROJSYNC\"] = self.options.build_executables and self.options.with_curl\n        self._cmake.configure()\n        return self._cmake\n\n    def package(self):\n        self.copy(\"COPYING\", dst=\"licenses\", src=self._source_subfolder)\n        cmake = self._configure_cmake()\n        cmake.install()\n        tools.rmdir(os.path.join(self.package_folder, \"share\"))\n        tools.rmdir(os.path.join(self.package_folder, \"lib\", \"cmake\"))\n\n    def package_info(self):\n        proj_version = tools.Version(self.version)\n        cmake_config_filename = \"proj\" if proj_version >= \"7.0.0\" else \"proj4\"\n        cmake_namespace = \"PROJ\" if proj_version >= \"7.0.0\" else \"PROJ4\"\n        self.cpp_info.filenames[\"cmake_find_package\"] = cmake_config_filename\n        self.cpp_info.filenames[\"cmake_find_package_multi\"] = cmake_config_filename\n        self.cpp_info.names[\"cmake_find_package\"] = cmake_namespace\n        self.cpp_info.names[\"cmake_find_package_multi\"] = cmake_namespace\n        self.cpp_info.components[\"projlib\"].names[\"cmake_find_package\"] = \"proj\"\n        self.cpp_info.components[\"projlib\"].names[\"cmake_find_package_multi\"] = \"proj\"\n        self.cpp_info.components[\"projlib\"].libs = tools.collect_libs(self)\n        if self.settings.os == \"Linux\":\n            self.cpp_info.components[\"projlib\"].system_libs.append(\"m\")\n            if self.options.threadsafe:\n                self.cpp_info.components[\"projlib\"].system_libs.append(\"pthread\")\n        elif self.settings.os == \"Windows\":\n            if proj_version >= \"7.0.0\":\n                self.cpp_info.components[\"projlib\"].system_libs.append(\"shell32\")\n            if proj_version >= \"7.1.0\":\n                self.cpp_info.components[\"projlib\"].system_libs.append(\"Ole32\")\n        if not self.options.shared and tools.stdcpp_library(self):\n            self.cpp_info.components[\"projlib\"].system_libs.append(tools.stdcpp_library(self))\n        self.cpp_info.components[\"projlib\"].requires.append(\"sqlite3::sqlite3\")\n        if self.options.get_safe(\"with_tiff\"):\n            self.cpp_info.components[\"projlib\"].requires.append(\"libtiff::libtiff\")\n        if self.options.get_safe(\"with_curl\"):\n            self.cpp_info.components[\"projlib\"].requires.append(\"libcurl::libcurl\")\n        if self.options.shared and self.settings.compiler == \"Visual Studio\":\n            self.cpp_info.components[\"projlib\"].defines.append(\"PROJ_MSVC_DLL_IMPORT\")\n\n        res_path = os.path.join(self.package_folder, \"res\")\n        self.output.info(\"Appending PROJ_LIB environment variable: {}\".format(res_path))\n        self.env_info.PROJ_LIB.append(res_path)\n        if self.options.build_executables:\n            bin_path = os.path.join(self.package_folder, \"bin\")\n            self.output.info(\"Appending PATH environment variable: {}\".format(bin_path))\n            self.env_info.PATH.append(bin_path)\n", "path": "recipes/proj/all/conanfile.py"}]}