私はプロジェクトにいくつかのelispファイルを持っています。私はバイトコンパイルしてCMakeでインストールしたいと思っています。コンパイル後、.el
と.elc
ファイルをディレクトリにインストールすることを目標にしたいと思います。私はこれまで持っていることは、私はcmake
(またはccmake
)で構成し、make
を実行すると、それは.el
ファイルをコンパイルしませんByte CMakeでelispファイルをコンパイル
set(ELISP_SOURCES
a.el.in
b.el
)
# Top level target to compile the elisp sources
add_custom_target(emacs_byte_compile ALL)
foreach(el ${ELISP_SOURCES})
# Configure and copy the files
get_filename_component(EL_NAME ${el} NAME_WE)
configure_file(${el} ${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.el)
# Add command to compile the files
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.elc
COMMAND ${EMACS} ARGS -batch -f batch-byte-compile ${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.el
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.el
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
# Create the dependencies
add_dependencies(emacs_byte_compile
${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.el ${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.elc
)
# Installation target
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.el ${CMAKE_CURRENT_BINARY_DIR}/${EL_NAME}.elc
RUNTIME DESTINATION ${ELISP_DIR}
)
endforeach(el)
です。しかしそれは目標を構築し終えたと言いますemacs_byte_compile
。だから私は、依存関係がどのように働くかについていくつかの誤解があると仮定します。
パーフェクト!ありがとう。 –