সিএমকে ৩.১ থেকে, এক্সকোড জেনারেটরের সাথে ccache ব্যবহার করা সম্ভব এবং সিএমকে ৩.৪ এর পরে নিনজা সমর্থনযোগ্য। নিনজা RULE_LAUNCH_COMPILE
ঠিক ইউনিক্স মেকফিলস জেনারেটরের মতো সম্মান করবে (তাই @ বাবকুলের উত্তর আপনাকে নিনজার জন্য পেয়েছে), তবে এক্সকোড জেনারেটরের জন্য কাজ করা সিসিচি পেতে আরও কিছুটা কাজ লাগে। নিম্নলিখিত নিবন্ধটি পদ্ধতিটি বিস্তারিতভাবে ব্যাখ্যা করেছে, একটি সাধারণ প্রয়োগ যা তিনটি সিএমকে জেনারেটরের জন্য কাজ করে এবং সিসিচি সিমলিংক স্থাপন বা অন্তর্নিহিত সংকলক ব্যবহৃত সম্পর্কে কোনও অনুমান না করে (এটি এখনও সিএমকে সংকলক স্থির করতে দেয়):
https://crascit.com/2016/04/09/using-ccache-with-cmake/
নিবন্ধটির সাধারণ বক্তব্য নিম্নরূপ। আপনার CMakeLists.txt
ফাইলের শুরুতে এমন কিছু সেট আপ করা উচিত:
cmake_minimum_required(VERSION 2.8)
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
# Support Unix Makefiles and Ninja
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
endif()
project(SomeProject)
get_property(RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
if(RULE_LAUNCH_COMPILE AND CMAKE_GENERATOR STREQUAL "Xcode")
# Set up wrapper scripts
configure_file(launch-c.in launch-c)
configure_file(launch-cxx.in launch-cxx)
execute_process(COMMAND chmod a+rx
"${CMAKE_BINARY_DIR}/launch-c"
"${CMAKE_BINARY_DIR}/launch-cxx")
# Set Xcode project attributes to route compilation through our scripts
set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx")
set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx")
endif()
দুটি স্ক্রিপ্ট টেম্পলেট ফাইল launch-c.in
এবং launch-cxx.in
দেখতে দেখতে (এগুলি CMakeLists.txt
ফাইলের মতো একই ডিরেক্টরিতে হওয়া উচিত ):
প্রবর্তন- c.in:
#!/bin/sh
export CCACHE_CPP2=true
exec "${RULE_LAUNCH_COMPILE}" "${CMAKE_C_COMPILER}" "$@"
প্রবর্তন- cxx.in:
#!/bin/sh
export CCACHE_CPP2=true
exec "${RULE_LAUNCH_COMPILE}" "${CMAKE_CXX_COMPILER}" "$@"
উপরে ব্যবহারসমূহ RULE_LAUNCH_COMPILE
ইউনিক্স ফাইল তৈরী এবং নিনজা জন্য কিন্তু Xcode একা জেনারেটরের এটা CMake এর কাছ থেকে সাহায্য উপর নির্ভর CMAKE_XCODE_ATTRIBUTE_...
ভেরিয়েবল সমর্থন। সেটিং CC
এবং CXX
ব্যবহারকারী-সংজ্ঞায়িত Xcode কম্পাইলার নির্দেশ ও নিয়ন্ত্রণ বৈশিষ্ট্যাবলী LD
এবং LDPLUSPLUS
linker কমান্ডের জন্য, যতটা আমি বলতে পারেন, Xcode প্রকল্পের নথিভুক্ত বৈশিষ্ট্য, কিন্তু এটা কাজ বলে মনে হচ্ছে না করা হয় না। যদি কেউ নিশ্চিত করতে পারেন যে এটি আনুষ্ঠানিকভাবে অ্যাপল দ্বারা সমর্থিত, আমি লিঙ্কিত নিবন্ধ এবং তদনুসারে এই উত্তরটি আপডেট করব।