0
私はマイクロコントローラー用のライブラリーを作成しています。マイクロコントローラー用のライブラリーの一部には、使用例がいくつかあります。例については、cmake add_custom_commandとadd_custom_targetをパラメータ化する方法は?
すべてCMakeList.txtファイルは非常によく似:
set(ESP_TARGET_FW1 "${CMAKE_CURRENT_BINARY_DIR}/${ESP_FW1}.bin")
set(ESP_TARGET_FW2 "${CMAKE_CURRENT_BINARY_DIR}/${ESP_FW2}.bin")
add_executable(esp_main main.c ${ESP_USER_CONFIG})
target_include_directories(esp_main PUBLIC include)
target_link_libraries(esp_main esp_sdo phy pp net80211)
# Create ESP8266 binary files.
add_custom_command(
OUTPUT
${ESP_TARGET_FW1} ${ESP_TARGET_FW2}
COMMAND
${ESPTOOL_PATH} elf2image $<TARGET_FILE:esp_main> -o ${CMAKE_CURRENT_BINARY_DIR}/
DEPENDS
esp_main
)
# Flash binary files to the device.
add_custom_target(esp_main_flash
COMMAND
${ESPTOOL_PATH} -p ${ESP_PORT} -b ${ESP_BAUD} write_flash ${ESP_FW1} ${ESP_TARGET_FW1} ${ESP_FW2} ${ESP_TARGET_FW2}
DEPENDS
${ESP_TARGET_FW1} ${ESP_TARGET_FW2}
)
のみ例の名前(esp_main)が変化し、生成されたバイナリファイルが作成されます。
私は何とかこのような場合にadd_custom_commandとadd_custom_targetをパラメータ化しようとしています。理想的には、いくつかのファイルをインクルードし、esp_main_flashターゲットとカスタムコマンドを定義します。
パラメータ化されたステップを実行する関数/マクロの定義で何が問題になっていますか? – Tsyvarev
@Tsyvarevはcmakeにとって全く新しいものです。これについては考えていません。あなたのコメントを答えにして、解決策として選ぶことができます。 – Ralphz