3

ファイル拡張子 .swig が .i と同等であることを CMake に納得させるにはどうすればよいですか?

他のファイル拡張子に対してこれを行うにはどうすればよいですか?

環境

Swig で CMake (バージョン 2.8、最小 2.6) を使用しています。swig インターフェース ファイルの拡張子を .i に設定すると、すべてが自動的に機能します (ターゲット言語インタープリター tclsh からロード可能な .dll 'モジュール' が動作することになります)。.swig 拡張子を付けると、CMake はそれをどうするかわかりません。ある拡張機能を別の拡張機能よりも使用して、エディターでの構文強調表示地獄を軽減したいと考えています。

既存の CMake ファイル

コメンターのリクエストにより、ここにmah'ファイルがあります:

find_package(swig REQUIRED)
include(${SWIG_USE_FILE})

find_package(tcl REQUIRED)
include_directories(${TCL_INCLUDE_PATH})

set(CMAKE_SWIG_FLAGS -prefix thoughtjack -namespace)

link_directories(${OEEG_BINARY_DIR}/oeeg)

set(swig_interface_files native.i)
set_source_files_properties(${swig_interface_files} PROPERTIES CPLUSPLUS ON)
file(GLOB_RECURSE native_source_files *.cpp *.c)

swig_add_module(thoughtjack_native tcl ${swig_interface_files} ${native_source_files})
swig_link_libraries(thoughtjack_native ${TCL_LIBRARY} oeeg)

file(GLOB script_files ${CMAKE_CURRENT_SOURCE_DIR}/*.tcl)
install(FILES ${script_files} DESTINATION opt/thoughtjack)
install(TARGETS thoughtjack_native DESTINATION opt/thoughtjack)

add_custom_target(
  thoughtjack
  DEPENDS thoughtjack_native
  SOURCES ${script_files}
)

custom_xyz ビットは、'sources' ビットおよびその他の装飾と共にあり、MSVS ソリューション ファイルを通じてそれらを利用できるようにするように CMake に指示します。前述のように、ファイルの名前を .swig から .i に変更するだけで (ここに示されているように)、native.(swig|i) ファイルに従って期待するすべての機能をエクスポートする、動作するロード可能な Tcl モジュールが得られます。

4

1 に答える 1