CMakeLists.txt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #
  2. # Licensed to the Apache Software Foundation (ASF) under one
  3. # or more contributor license agreements. See the NOTICE file
  4. # distributed with this work for additional information
  5. # regarding copyright ownership. The ASF licenses this file
  6. # to you under the Apache License, Version 2.0 (the
  7. # "License"); you may not use this file except in compliance
  8. # with the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing, software
  13. # distributed under the License is distributed on an "AS IS" BASIS,
  14. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. # See the License for the specific language governing permissions and
  16. # limitations under the License.
  17. #
  18. project (libhdfspp)
  19. find_package(Doxygen)
  20. find_package(OpenSSL REQUIRED)
  21. find_package(Protobuf REQUIRED)
  22. find_package(Threads)
  23. add_definitions(-DASIO_STANDALONE -DASIO_CPP11_DATE_TIME)
  24. if(UNIX)
  25. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -std=c++11 -g -fPIC -fno-strict-aliasing")
  26. endif()
  27. # Mac OS 10.7 and later deprecates most of the methods in OpenSSL.
  28. # Add -Wno-deprecated-declarations to avoid the warnings.
  29. if(APPLE)
  30. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -Wno-deprecated-declarations")
  31. endif()
  32. if(DOXYGEN_FOUND)
  33. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile @ONLY)
  34. add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile
  35. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  36. COMMENT "Generating API documentation with Doxygen" VERBATIM)
  37. endif(DOXYGEN_FOUND)
  38. include_directories(
  39. include
  40. lib
  41. ${PROJECT_BINARY_DIR}/lib/proto
  42. third_party/asio-1.10.2/include
  43. third_party/gmock-1.7.0
  44. )
  45. set(PROTO_HDFS_DIR ${CMAKE_CURRENT_LIST_DIR}/../../proto)
  46. set(PROTO_HADOOP_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../../../../hadoop-common-project/hadoop-common/src/main/proto)
  47. set(PROTO_HADOOP_TEST_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../../../../hadoop-common-project/hadoop-common/src/test/proto)
  48. add_subdirectory(third_party/gmock-1.7.0)
  49. add_subdirectory(lib)
  50. add_subdirectory(tests)