diff --git a/build.gradle.kts b/build.gradle.kts index 4d0adc2fc..616d222bb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1028,9 +1028,9 @@ afterEvaluate { if (isLinux) { project.logger.info("LD folders: ${LDLibraries.ldFolders}") - for (lib in listOf("libncurses.so.5", "libtinfo.so.5", "libglut.so.3", "libopenal.so.1")) { + for (lib in listOf("libglut.so.3", "libopenal.so.1")) { if (!LDLibraries.hasLibrary(lib)) { - System.err.println("Can't find $lib. Please: sudo apt-get -y install freeglut3-dev libopenal-dev libncurses5 libtinfo5") + System.err.println("Can't find $lib. Please: sudo apt-get -y install freeglut3 libopenal1") } } } diff --git a/buildSrc/src/main/kotlin/com/soywiz/korlibs/util/LDLibraries.kt b/buildSrc/src/main/kotlin/com/soywiz/korlibs/util/LDLibraries.kt index 17bd1723d..083a221f8 100644 --- a/buildSrc/src/main/kotlin/com/soywiz/korlibs/util/LDLibraries.kt +++ b/buildSrc/src/main/kotlin/com/soywiz/korlibs/util/LDLibraries.kt @@ -6,20 +6,32 @@ import java.nio.file.Files object LDLibraries { private val libFolders = LinkedHashSet() private val loadConfFiles = LinkedHashSet() + + val ldFolders: List get() = libFolders.toList() + // /etc/ld.so.conf // include /etc/ld.so.conf.d/*.conf + fun addPath(path: String) { + val file = File(path) + if (file.isDirectory) { + libFolders.add(file) + } + } + init { try { + // Fixed paths as described https://renenyffenegger.ch/notes/Linux/fhs/etc/ld_so_conf + addPath("/lib") + addPath("/usr/lib") + // Load config file loadConfFile(File("/etc/ld.so.conf")) } catch (e: Throwable) { e.printStackTrace() } } - val ldFolders = libFolders.toList() - - fun hasLibrary(name: String) = ldFolders.any { File(it, name).exists() } + fun hasLibrary(name: String) = libFolders.any { File(it, name).exists() } private fun loadConfFile(file: File) { if (file in loadConfFiles) return @@ -29,11 +41,17 @@ object LDLibraries { if (tline.startsWith("include ")) { val glob = tline.removePrefix("include ") - for (folder in Files.newDirectoryStream(File(glob).parentFile.toPath(), File(glob).name).toList().map { it.toFile() }) { - loadConfFile(folder) + val globFolder = File(glob).parentFile + val globPattern = File(glob).name + if (globFolder.isDirectory) { + for (folder in + Files.newDirectoryStream(globFolder.toPath(), globPattern).toList().map { it.toFile() } + ) { + loadConfFile(folder) + } } } else { - libFolders += File(tline) + addPath(tline) } } } diff --git a/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/KorgeGradlePlugin.kt b/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/KorgeGradlePlugin.kt index 5af029bd5..33d3477e1 100644 --- a/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/KorgeGradlePlugin.kt +++ b/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/KorgeGradlePlugin.kt @@ -29,9 +29,9 @@ class KorgeGradleApply(val project: Project) { if (isLinux) { project.logger.info("LD folders: ${LDLibraries.ldFolders}") - for (lib in listOf("libncurses.so.5", "libtinfo.so.5", "libglut.so.3", "libopenal.so.1")) { + for (lib in listOf("libglut.so.3", "libopenal.so.1")) { if (!LDLibraries.hasLibrary(lib)) { - System.err.println("Can't find $lib. Please: sudo apt-get -y install freeglut3-dev libopenal-dev libncurses5 libtinfo5") + System.err.println("Can't find $lib. Please: sudo apt-get -y install freeglut3 libopenal1") } } } diff --git a/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/targets/linux/LDLibraries.kt b/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/targets/linux/LDLibraries.kt index 0619363ab..5d1022902 100644 --- a/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/targets/linux/LDLibraries.kt +++ b/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/targets/linux/LDLibraries.kt @@ -6,20 +6,32 @@ import java.nio.file.Files object LDLibraries { private val libFolders = LinkedHashSet() private val loadConfFiles = LinkedHashSet() + + val ldFolders: List get() = libFolders.toList() + // /etc/ld.so.conf // include /etc/ld.so.conf.d/*.conf + fun addPath(path: String) { + val file = File(path) + if (file.isDirectory) { + libFolders.add(file) + } + } + init { try { + // Fixed paths as described https://renenyffenegger.ch/notes/Linux/fhs/etc/ld_so_conf + addPath("/lib") + addPath("/usr/lib") + // Load config file loadConfFile(File("/etc/ld.so.conf")) } catch (e: Throwable) { e.printStackTrace() } } - val ldFolders = libFolders.toList() - - fun hasLibrary(name: String) = ldFolders.any { File(it, name).exists() } + fun hasLibrary(name: String) = libFolders.any { File(it, name).exists() } private fun loadConfFile(file: File) { if (file in loadConfFiles) return @@ -33,13 +45,13 @@ object LDLibraries { val globPattern = File(glob).name if (globFolder.isDirectory) { for (folder in - Files.newDirectoryStream(globFolder.toPath(), globPattern).toList().map { it.toFile() } + Files.newDirectoryStream(globFolder.toPath(), globPattern).toList().map { it.toFile() } ) { loadConfFile(folder) } } } else { - libFolders += File(tline) + addPath(tline) } } }