Closed6

Swift with CMake on Windows

あらさんあらさん

CMakeを利用したプロジェクトでコード補完を効かせるためにはcompile_commands.jsonというファイル別の対応関係を列挙したものを生成してあげるとsourcekit-lspで読み込める
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
https://github.com/apple/sourcekit-lsp

[
{
  "directory": "S:/src/apple-swift-cmake-examples/2_executable_library/build",
  "command": "C:\\Users\\arasa\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin\\swiftc.exe -j 12 -num-threads 12 -c -parse-as-library -static -emit-module -emit-module-path lib\\factorial.swiftmodule -module-name factorial -module-link-name factorial -Onone -g -incremental -output-file-map lib\\CMakeFiles\\factorial.dir\\Debug\\output-file-map.json S:\\src\\apple-swift-cmake-examples\\2_executable_library\\lib\\factorial.swift",
  "file": "S:\\src\\apple-swift-cmake-examples\\2_executable_library\\lib\\factorial.swift",
  "output": "lib\\CMakeFiles\\factorial.dir\\factorial.swift.obj"
},
{
  "directory": "S:/src/apple-swift-cmake-examples/2_executable_library/build",
  "command": "C:\\Users\\arasa\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin\\swiftc.exe -j 12 -num-threads 12 -c -Onone -g -incremental -output-file-map src\\CMakeFiles\\factorials.dir\\Debug\\output-file-map.json -I S:\\src\\apple-swift-cmake-examples\\2_executable_library\\build\\lib S:\\src\\apple-swift-cmake-examples\\2_executable_library\\src\\main.swift",
  "file": "S:\\src\\apple-swift-cmake-examples\\2_executable_library\\src\\main.swift",
  "output": "src\\CMakeFiles\\factorials.dir\\main.swift.obj"
}
]
あらさんあらさん

compile_command.jsonを直接指定できるようにしないといけないのか…?という当たり前の疑問が上記のフォーラムで解決してPRまで出されていた、今普通にWindowsで使える --compilation-db-search-path はこの課題を実際に解決するためのオプションだった
https://github.com/apple/sourcekit-lsp/pull/915

このスクラップは2024/04/13にクローズされました