From 219222671aaa3c586d80434bd5f57b2e8e538f11 Mon Sep 17 00:00:00 2001 From: jathu Date: Tue, 13 May 2025 11:34:48 -0700 Subject: [PATCH] install flatc --- setup.py | 2 +- third-party/CMakeLists.txt | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/setup.py b/setup.py index 0b474d2537e..162a3541132 100644 --- a/setup.py +++ b/setup.py @@ -840,7 +840,7 @@ def get_ext_modules() -> List[Extension]: ext_modules = [ BuiltFile( - src_dir="%CMAKE_CACHE_DIR%/third-party/flatbuffers_external_project", + src_dir="%CMAKE_CACHE_DIR%/third-party/flatbuffers_external_project/bin/%BUILD_TYPE%/", src_name="flatc", dst="executorch/data/bin/", is_executable=True, diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt index 32b6687be5e..df7e2b2521d 100644 --- a/third-party/CMakeLists.txt +++ b/third-party/CMakeLists.txt @@ -12,33 +12,32 @@ ExternalProject_Add( flatbuffers_external_project PREFIX ${CMAKE_CURRENT_BINARY_DIR}/flatbuffers_external_project - BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/flatbuffers_external_project SOURCE_DIR ${PROJECT_SOURCE_DIR}/third-party/flatbuffers # Always use Make to avoid needing to codesign flatc if the project is using Xcode. CMAKE_GENERATOR "Unix Makefiles" CMAKE_ARGS -DFLATBUFFERS_BUILD_FLATC=ON - -DFLATBUFFERS_INSTALL=OFF + -DFLATBUFFERS_INSTALL=ON -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_TESTS=OFF + -DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_CXX_FLAGS="-DFLATBUFFERS_MAX_ALIGNMENT=${EXECUTORCH_FLATBUFFERS_MAX_ALIGNMENT}" # Unset the toolchain to build for the host instead of the toolchain set for the project. -DCMAKE_TOOLCHAIN_FILE= # If building for iOS, "unset" these variables to rely on the host (macOS) defaults. $<$,$>>:-DCMAKE_OSX_SYSROOT=> -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} - INSTALL_COMMAND "" - BUILD_BYPRODUCTS /flatc + BUILD_BYPRODUCTS /bin/flatc ) -ExternalProject_Get_Property(flatbuffers_external_project BINARY_DIR) +ExternalProject_Get_Property(flatbuffers_external_project INSTALL_DIR) add_executable(flatc IMPORTED GLOBAL) add_dependencies(flatc flatbuffers_external_project) if(WIN32) # flatbuffers does not use CMAKE_BUILD_TYPE. Internally, the build forces Release # config, but from CMake's perspective the build type is always Debug. - set_target_properties(flatc PROPERTIES IMPORTED_LOCATION ${BINARY_DIR}/$/flatc.exe) + set_target_properties(flatc PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/$/bin/flatc.exe) else() - set_target_properties(flatc PROPERTIES IMPORTED_LOCATION ${BINARY_DIR}/flatc) + set_target_properties(flatc PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/bin/flatc) endif() # TODO: re-enable once flatbuffers is added as a subdirectory. @@ -73,7 +72,7 @@ ExternalProject_Get_Property(flatcc_external_project INSTALL_DIR) add_executable(flatcc_cli IMPORTED GLOBAL) add_dependencies(flatcc_cli flatcc_external_project) if(WIN32) - set_target_properties(flatcc_cli PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/bin/${CMAKE_BUILD_TYPE}/flatcc) + set_target_properties(flatcc_cli PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/$/bin/flatcc.exe) else() set_target_properties(flatcc_cli PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/bin/flatcc) endif()