https://github.com/dremio/dremio-oss/blob/master/pom.xml
After I clone the project,I try to build the project, but some dependencies are not found .How to find these dependencies,such as
the project accquire calicte:4.0.0-20210722102535-bda216e83f-dremio,which can not find in mavencenter
Any help?
I tried building dremio-oss on Windows the other day and there were no problems with resolving dependencies. You should include more information from the build log. You can also try using the "-U" option to force checking remote repositories which is useful if your local repository cache is out of date. Your error message also doesn't make sense since the correct version for Calcite is this one: https://github.com/dremio/dremio-oss/blob/master/pom.xml#L46
Related
I'm new to Bazel and Armeria. In the Armeria dev guide, in setting up with a build system, it has examples from Gradle and Maven, but not Bazel. Downloading the jar file (armeria-1.18.0.jar) and importing it directly using java_import() will build the project, but gives and error during runtime. It cannot find the runtime dependencies of Armeria like micrometer, etc.
This seems more like a question about bazel rather than armeria.
Have you tried using maven_install? I guess this takes care of pulling in transitive dependencies.
Sample: https://github.com/bazelbuild/examples/tree/main/java-maven
Documentation: https://github.com/bazelbuild/rules_jvm_external
This is going to be a little long of an introduction, but I think it i neccessary for you to understand what I've already tried.
I am currently trying to set up a gRPC Client with C++, after i already set up a Server and Client in Python with no problem. However for C++ the building of gRPC is just evil. With the resources form the offivial git repository I was able to build gRPC (or so i thought) but when I then tried to build my project with Cmake i got an error that the gRPCTargets.cmake is missing. Tracing this back I found that I had to build gRPC itself with all the dependencies as packages instead of submodules. So I started by downloading C-Ares and building it. No Problem here. Next I tried reconfiguring gRPC with the new c-ares directory variable set and type package set. Now i encountered a Problem that the in c-ares-config.cmake an include directory is specified which does not exist at all.
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
macro(set_and_check _var _file)
set(${_var} "${_file}")
if(NOT EXISTS "${_file}")
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
endif()
endmacro()
set_and_check(c-ares_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include")
include("${CMAKE_CURRENT_LIST_DIR}/c-ares-targets.cmake")
For me the Path with /../../../ doesn't make any sense but since it's automatically generated and I am pretty much a noob using Cmake I cannot say what would be correct there. All i know is that there is no folder named include inside any of the c-ares folders. I tried removing the set_and_check(...) line, which removes the error, but now I am asked for a c-ares-targets.cmake which cannot be found.
I am pretty much stuck here. I would highly appreciate any help or ideas fixing this.
Maybe there is an option of getting a precompiled gRPC-resource for C++ on windows, but was unable to find any sources.
I understand that CMake enables a project to be easily built in a variety of compiler/IDE environments. I have experienced this for myself and was amazed when CMake produced a working, buildable Xcode project for me from some open source project (cool!)
But what I don't understand is how you properly update the CMake system after you have made significant changes to the project that CMake created for you.
For example I am envisioning a workflow in which the project should be kept portable via CMake. So I create a clone of a github project, use CMake to create my XCode project, and then go to work implementing some new feature or bug fix. Perhaps these changes are non-trivial and affect build.
After these changes are complete I want to push the code base back to github. What happens now? Must all of the CMake files be updated by hand to reflect all of the work that I've done? Or is there some equally magical feature to update the CMake files with the changes that were implemented in XCode (or Visual Studio, or some other supported IDE/compiler combo)?
What is the general "Roundtrip" workflow with CMake and how efficient is it?
The point is that you change your project by changing the CMake configuration files themselves. It could be that you'll find some other tool which manages cmake projects, which will make changes to your cmake files. In the example you mention, you have to check if XCode is modifying your cmake files.
You have to commit all the necessary modifications you do to your cmake files, and your build program (make, ninja, or any other) will run cmake every time the cmake project files are touched.
Advanced note: if you use the command file with globbing instructions to get the list of your sources files, you might be interested to read Getting cmake to run before building after pulling from git
I have a problem using libclang:
I built libclang locally. It resides somewhere like clang-llvm/…/libclang.3.4.dylib.
Then I developed a foundation tool using that dylib. (exactly: I copied a version to my project folder and linked against this.) The foundation tool works fine. But, of course, at load time it uses the dylib in my local build folder. This is unacceptable, because the user of the tool has to install clang to use my tool.
So I copied libclang.3.4.dylib to a location inside /usr/…/libclang.3.4.dylib and changed the installation path to that location using install_name_path -id /usr/…/libclang.3.4.dylib /usr/…/libclang.3.4.dylib.
After that my tool finds the dylib there but does not work since the parser cannot find stdarg.h any more in the file, that is parsed by my tool.
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:12:10: fatal error: 'stdarg.h' file not found
How can I set the installation path of libclang.3.4.dylib to something public?
Amin, my good friend.
<sarcasm>
From what you wrote it should be OBVIOUS to EVERYONE that you have to create a release build of your tool and NOT a debug build. Xcode should have told you that in the form of CLEAR and EASY to understand error messages.
</sarcasm>
Solution: Use a release build of your tool instead of a debug build.
:)
I just switched to CMake. And yet found it very useful and realized some simple apps and libs.
Somewhere I read that it's possible to query git to checkout repositories from within cmake scripts.
I'd like to check for the existence of a package with my Find(package).cmake
If it doesn't exist i'd like to initiate a checkout and add the new directory to the cmake script as subdirectory.
That way all my dependencies will get installed automatically.
Does somebody know how to accomplish this idea? Thank you!
Bye, Arthur
You're probably thinking about the ExternalProject module added in CMake 2.8. It's documented at http://www.cmake.org/cmake/help/cmake-2-8-docs.html#module:ExternalProject with an intro to it at page 14 of http://www.kitware.com/products/archive/kitware_quarterly1009.pdf. It allows you checkout/download a project and build it automatically.
I would try to find the package with find_package and if the package_FOUND variable is not set you have to call git manually with execute_process. If the source already contains a CMakeLists.txt simply add it by using add_subdirectory otherwise you have to write your own CMake instructions to build that package first.