diff options
author | Adrien Devresse <adrien.devresse@epfl.ch> | 2017-10-31T21·15+0100 |
---|---|---|
committer | Adrien Devresse <adrien.devresse@epfl.ch> | 2017-11-02T17·47+0100 |
commit | a3322e3bfc96f33d3e195fd38a7c09f263e7e75f (patch) | |
tree | e219a8db3dbe4ebba5c8189888e2df12e4db1329 /CMake/README.md | |
parent | 200b5a7cb0fb256ab47c933b3150aed91d9d3470 (diff) |
Continue CMake support improvement
- Update documentation - Remove type target - Remove typos - simplify target - improve 1-1 matchign with Bazel targets
Diffstat (limited to 'CMake/README.md')
-rw-r--r-- | CMake/README.md | 79 |
1 files changed, 53 insertions, 26 deletions
diff --git a/CMake/README.md b/CMake/README.md index 53d3d3351891..ea56b6dac522 100644 --- a/CMake/README.md +++ b/CMake/README.md @@ -4,37 +4,64 @@ ### Recommended usage : incorporate Abseil into an CMake project - We recommended to build and use abseil in the same way than googletest - ( https://github.com/google/googletest/blob/master/googletest/README.md ) + For API / ABI compatibility reasons, it is recommended to build + and use abseil in a subdirectory of your project or as an embedded + dependency - * Download abseil and copy it in a sub-directory in your project. + This is similar to the recommended usage of the googletest framework + ( https://github.com/google/googletest/blob/master/googletest/README.md ) - * Or add abseil as a git-submodule in your project + Build and use step-by-step - You can then use the cmake `add_subdirectory()` command to include - abseil directly and use the abseil targets in your project. - Abseil requires CCTZ and the googletest framework. Consequently, + 1- Download abseil and copy it in a sub-directory in your project. + or add abseil as a git-submodule in your project + + 2- If not done yet, download and copy in your project the two dependencies of + abseil `cctz` and `googletest` + + * cctz https://github.com/google/cctz + * googletest https://github.com/google/googletest + + 3- You can then use the cmake command `add_subdirectory()` to include + abseil directly and use the abseil targets in your project. + + Note: Abseil requires CCTZ and the googletest framework. Consequently, the targets `gtest`, `gtest_main`, `gmock` and `cctz` need - to be declared in your project before including abseil with `add_subdirectory`. - You can find instructions on how to get and build these projects at these - URL : - * cctz https://github.com/google/cctz - * googletest https://github.com/google/googletest - - - - Here is a short CMakeLists.txt example of a possible project file - using abseil - - project(my_project) - - add_subdirectory(googletest) - add_subdirectory(cctz) - add_subdirectory(abseil-cpp) - - add_executable(my_exe source.cpp) - target_link_libraries(my_exe base synchronization strings) + to be declared in your project before including abseil with `add_subdirectory`. + + + 4- Add the absl:: target you wish to use to the `target_link_libraries()` + section of your executable or of your library + + + Here is a short CMakeLists.txt example of a possible project file + using abseil + + project(my_project) + + add_subdirectory(googletest) + add_subdirectory(cctz) + add_subdirectory(abseil-cpp) + + add_executable(my_exe source.cpp) + target_link_libraries(my_exe absl::base absl::synchronization absl::strings) + + + You will find here a non exhaustive list of absl public targets + + absl::base + absl::algorithm + absl::container + absl::debugging + absl::memory + absl::meta + absl::numeric + absl::strings + absl::synchronization + absl::time + absl::utility + |