Tl; dr

Mengingat CMakeList.txt yang tidak dapat saya edit, dapatkah saya menyetel CMAKE_TRY_COMPILE_TARGET_TYPE menjadi STATIC_LIBRARY saat mengonfigurasi file itu?

Idealnya saya bisa melakukan ini melalui variabel lingkungan, tetapi jika itu tidak mungkin, meneruskan nilai saya sebagai argumen baris perintah juga tidak masalah.

Rincian

Saya mencoba membuat profil Conan yang memungkinkan saya untuk melakukan cross build menggunakan GNU Arm Embedded Toolchain.

Conan menyediakan mekanisme untuk menentukan biner kompiler dan flag compiler + linker yang saya ingin gunakan CMake, tetapi saya perlu menentukan set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) agar GNU Arm Embedded lulus pemeriksaan kompiler CMake.

Untuk membuat toolchain cross build saya berfungsi, maka, saya memiliki 2 opsi:

  1. Setiap file CMake yang ingin saya dukung cross build harus memeriksa apakah kita sedang membangun untuk perangkat yang disematkan, dan jika demikian, jalankanset(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY). Ini menjengkelkan karena memaksa semua proyek harus berpikir untuk disematkan.
  2. ATAU, Entah bagaimana meneruskan CMAKE_TRY_COMPILE_TARGET_TYPE ke CMake tanpa mengedit CMakeList.txt.

Saya ingin melakukan 2.

2
Peter Moran 6 Maret 2019, 17:57

1 menjawab

Jawaban Terbaik

Anda mungkin bisa mendapatkan fungsionalitas yang Anda cari dengan tanda -D.

Saya akan mencoba sesuatu seperti ini: cmake -D CMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY

2
Brandon Dyer 6 Maret 2019, 15:20