Jelajahi Sumber

[iOS] don't nest AI and scripting libs under subdirectories

3rd party signing tools may ignore such directory layout
Andrey Filipenkov 3 tahun lalu
induk
melakukan
b766edb6af
2 mengubah file dengan 15 tambahan dan 2 penghapusan
  1. 8 2
      CMakeLists.txt
  2. 7 0
      lib/VCMIDirs.cpp

+ 8 - 2
CMakeLists.txt

@@ -402,8 +402,14 @@ else()
 	add_definitions(-DM_LIB_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}")
 endif()
 
-set(AI_LIB_DIR "${LIB_DIR}/AI")
-set(SCRIPTING_LIB_DIR "${LIB_DIR}/scripting")
+# iOS has flat libs directory structure
+if(APPLE_IOS)
+	set(AI_LIB_DIR "${LIB_DIR}")
+	set(SCRIPTING_LIB_DIR "${LIB_DIR}")
+else()
+	set(AI_LIB_DIR "${LIB_DIR}/AI")
+	set(SCRIPTING_LIB_DIR "${LIB_DIR}/scripting")
+endif()
 
 #######################################
 #        Add subdirectories           #

+ 7 - 0
lib/VCMIDirs.cpp

@@ -391,6 +391,7 @@ public:
 	std::vector<bfs::path> dataPaths() const override;
 
 	bfs::path libraryPath() const override;
+	bfs::path fullLibraryPath(const std::string & desiredFolder, const std::string & baseLibName) const override;
 	bfs::path binaryPath() const override;
 };
 
@@ -411,6 +412,12 @@ std::vector<bfs::path> VCMIDirsIOS::dataPaths() const
 	return paths;
 }
 
+bfs::path VCMIDirsIOS::fullLibraryPath(const std::string & desiredFolder, const std::string & baseLibName) const
+{
+	// iOS has flat libs directory structure
+	return libraryPath() / libraryName(baseLibName);
+}
+
 bfs::path VCMIDirsIOS::libraryPath() const { return {iOS_utils::frameworksPath()}; }
 bfs::path VCMIDirsIOS::binaryPath() const { return {iOS_utils::bundlePath()}; }
 #elif defined(VCMI_MAC)