mirror of https://github.com/llvm/circt.git
[CMake] Align CIRCTConfig.cmake more closely with MLIR
Update the `cmake/modules/CMakeLists.txt` file and friends such that the config file also includes the `CIRCT_TOOLS_BINARY_DIR` variable, and the generation of that file resembles that in MLIR more closely. This should make it easier in the future to use some of LLVM's cmake utilities.
This commit is contained in:
parent
209c85d305
commit
416560123e
|
@ -115,7 +115,8 @@ set(CIRCT_MAIN_INCLUDE_DIR ${CIRCT_MAIN_SRC_DIR}/include)
|
|||
|
||||
set(CIRCT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(CIRCT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set(CIRCT_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include )
|
||||
set(CIRCT_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||
set(CIRCT_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CIRCT_TOOLS_DIR ${CMAKE_BINARY_DIR}/bin)
|
||||
set(CIRCT_UTILS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/utils)
|
||||
set(CIRCT_PYTHON_PACKAGES_DIR ${CIRCT_BINARY_DIR}/python_packages)
|
||||
|
|
|
@ -7,12 +7,10 @@ find_package(MLIR REQUIRED CONFIG
|
|||
|
||||
set(CIRCT_EXPORTED_TARGETS "@CIRCT_EXPORTS@")
|
||||
set(CIRCT_CMAKE_DIR "@CIRCT_CONFIG_CMAKE_DIR@")
|
||||
set(CIRCT_BINARY_DIR "@CIRCT_CONFIG_BINARY_DIR@")
|
||||
set(CIRCT_INCLUDE_DIRS "@CIRCT_CONFIG_INCLUDE_DIRS@")
|
||||
#set(CIRCT_TABLEGEN_EXE "@CIRCT_TABLEGEN_EXE@")
|
||||
|
||||
# For circt_tablegen()
|
||||
set(CIRCT_INCLUDE_DIR "@CIRCT_INCLUDE_DIR@")
|
||||
set(CIRCT_MAIN_SRC_DIR "@CIRCT_MAIN_SRC_DIR@")
|
||||
set(CIRCT_LIBRARY_DIRS "@CIRCT_CONFIG_LIBRARY_DIRS@")
|
||||
set(CIRCT_TOOLS_DIR "@CIRCT_CONFIG_TOOLS_DIR@")
|
||||
|
||||
set_property(GLOBAL PROPERTY CIRCT_ALL_LIBS "@CIRCT_ALL_LIBS@")
|
||||
set_property(GLOBAL PROPERTY CIRCT_DIALECT_LIBS "@CIRCT_DIALECT_LIBS@")
|
||||
|
@ -20,7 +18,7 @@ set_property(GLOBAL PROPERTY CIRCT_CONVERSION_LIBS "@CIRCT_CONVERSION_LIBS@")
|
|||
set_property(GLOBAL PROPERTY CIRCT_TRANSLATION_LIBS "@CIRCT_TRANSLATION_LIBS@")
|
||||
|
||||
# Provide all our library targets to users.
|
||||
include("@CIRCT_CONFIG_EXPORTS_FILE@")
|
||||
@CIRCT_CONFIG_INCLUDE_EXPORTS@
|
||||
|
||||
# By creating these targets here, subprojects that depend on CIRCT's
|
||||
# tablegen-generated headers can always depend on these targets whether building
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# Generate a list of CMake library targets so that other CMake projects can
|
||||
# link against them.
|
||||
set(CIRCT_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/circt)
|
||||
set(circt_cmake_builddir "${CMAKE_BINARY_DIR}/${CIRCT_INSTALL_PACKAGE_DIR}")
|
||||
|
||||
|
@ -25,7 +27,10 @@ get_property(CIRCT_ANALYSIS_LIBS GLOBAL PROPERTY CIRCT_ANALYSIS_LIBS)
|
|||
set(CIRCT_CONFIG_CMAKE_DIR "${circt_cmake_builddir}")
|
||||
set(CIRCT_CONFIG_LLVM_CMAKE_DIR "${llvm_cmake_builddir}")
|
||||
set(CIRCT_CONFIG_MLIR_CMAKE_DIR "${mlir_cmake_builddir}")
|
||||
set(CIRCT_CONFIG_EXPORTS_FILE "${circt_cmake_builddir}/CIRCTTargets.cmake")
|
||||
set(CIRCT_CONFIG_LIBRARY_DIRS "${CIRCT_LIBRARY_DIR}")
|
||||
set(CIRCT_CONFIG_BINARY_DIR "${CIRCT_BINARY_DIR}")
|
||||
set(CIRCT_CONFIG_TOOLS_DIR "${CIRCT_TOOLS_DIR}")
|
||||
set(CIRCT_CONFIG_INCLUDE_EXPORTS "include(\"\${CIRCT_CMAKE_DIR}/CIRCTTargets.cmake\")")
|
||||
set(CIRCT_CONFIG_INCLUDE_DIRS
|
||||
"${CIRCT_SOURCE_DIR}/include"
|
||||
"${CIRCT_BINARY_DIR}/include"
|
||||
|
@ -36,12 +41,16 @@ configure_file(
|
|||
@ONLY)
|
||||
set(CIRCT_CONFIG_CMAKE_DIR)
|
||||
set(CIRCT_CONFIG_LLVM_CMAKE_DIR)
|
||||
set(CIRCT_CONFIG_EXPORTS_FILE)
|
||||
set(CIRCT_CONFIG_MLIR_CMAKE_DIR)
|
||||
set(CIRCT_CONFIG_LIBRARY_DIRS)
|
||||
set(CIRCT_CONFIG_BINARY_DIR)
|
||||
set(CIRCT_CONFIG_TOOLS_DIR)
|
||||
set(CIRCT_CONFIG_INCLUDE_EXPORTS)
|
||||
set(CIRCT_CONFIG_INCLUDE_DIRS)
|
||||
|
||||
# Generate CIRCTConfig.cmake for the install tree.
|
||||
set(CIRCT_CONFIG_CODE "
|
||||
# Compute the installation prefix from this LLVMConfig.cmake file location.
|
||||
# Compute the installation prefix from this CIRCTConfig.cmake file location.
|
||||
get_filename_component(CIRCT_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
|
||||
# Construct the proper number of get_filename_component(... PATH)
|
||||
# calls to compute the installation prefix.
|
||||
|
@ -52,7 +61,11 @@ get_filename_component(CIRCT_INSTALL_PREFIX \"\${CIRCT_INSTALL_PREFIX}\" PATH)")
|
|||
endforeach(p)
|
||||
set(CIRCT_CONFIG_CMAKE_DIR "\${CIRCT_INSTALL_PREFIX}/${CIRCT_INSTALL_PACKAGE_DIR}")
|
||||
set(CIRCT_CONFIG_LLVM_CMAKE_DIR "\${CIRCT_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
|
||||
set(CIRCT_CONFIG_EXPORTS_FILE "\${CIRCT_CMAKE_DIR}/CIRCTTargets.cmake")
|
||||
set(CIRCT_CONFIG_MLIR_CMAKE_DIR "\${CIRCT_INSTALL_PREFIX}/${MLIR_INSTALL_PACKAGE_DIR}")
|
||||
set(CIRCT_CONFIG_LIBRARY_DIRS "\${CIRCT_INSTALL_PREFIX}/lib")
|
||||
set(CIRCT_CONFIG_BINARY_DIR "\${CIRCT_INSTALL_PREFIX}")
|
||||
set(CIRCT_CONFIG_TOOLS_DIR "\${CIRCT_INSTALL_PREFIX}/bin")
|
||||
set(CIRCT_CONFIG_INCLUDE_EXPORTS "include(\"\${CIRCT_CMAKE_DIR}/CIRCTTargets.cmake\")")
|
||||
set(CIRCT_CONFIG_INCLUDE_DIRS
|
||||
"\${CIRCT_INSTALL_PREFIX}/include"
|
||||
)
|
||||
|
@ -62,7 +75,12 @@ configure_file(
|
|||
@ONLY)
|
||||
set(CIRCT_CONFIG_CODE)
|
||||
set(CIRCT_CONFIG_CMAKE_DIR)
|
||||
set(CIRCT_CONFIG_EXPORTS_FILE)
|
||||
set(CIRCT_CONFIG_LLVM_CMAKE_DIR)
|
||||
set(CIRCT_CONFIG_MLIR_CMAKE_DIR)
|
||||
set(CIRCT_CONFIG_LIBRARY_DIRS)
|
||||
set(CIRCT_CONFIG_BINARY_DIR)
|
||||
set(CIRCT_CONFIG_TOOLS_DIR)
|
||||
set(CIRCT_CONFIG_INCLUDE_EXPORTS)
|
||||
set(CIRCT_CONFIG_INCLUDE_DIRS)
|
||||
|
||||
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
|
|
Loading…
Reference in New Issue