2017-04-08 06:38:04 +08:00
|
|
|
diff --git a/Microsoft.WindowsAzure.Storage/CMakeLists.txt b/Microsoft.WindowsAzure.Storage/CMakeLists.txt
|
2018-05-15 17:34:36 +08:00
|
|
|
index a23b93f..e471b86 100644
|
2017-04-08 06:38:04 +08:00
|
|
|
--- a/Microsoft.WindowsAzure.Storage/CMakeLists.txt
|
|
|
|
+++ b/Microsoft.WindowsAzure.Storage/CMakeLists.txt
|
2018-05-15 17:34:36 +08:00
|
|
|
@@ -1,5 +1,5 @@
|
|
|
|
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
|
|
|
|
-cmake_minimum_required(VERSION 2.6)
|
|
|
|
+cmake_minimum_required(VERSION 3.8)
|
|
|
|
project(azurestorage)
|
|
|
|
|
|
|
|
enable_testing()
|
|
|
|
@@ -21,8 +21,6 @@ if(UNIX)
|
|
|
|
|
|
|
|
# Prefer the latest (make the latest one first)
|
|
|
|
list(REVERSE OPENSSL_ROOT_DIR)
|
|
|
|
-
|
|
|
|
-
|
|
|
|
if(NOT GETTEXT_LIB_DIR)
|
|
|
|
message(WARNING "No GETTEXT_LIB_DIR specified, assuming: /usr/local/opt/gettext/lib")
|
|
|
|
set(GETTEXT_LIB_DIR "/usr/local/opt/gettext/lib")
|
|
|
|
@@ -40,6 +38,7 @@ if(UNIX)
|
|
|
|
find_package(OpenSSL 1.0.0 REQUIRED)
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
find_package(UUID REQUIRED)
|
|
|
|
find_package(Casablanca REQUIRED)
|
|
|
|
find_package(LibXML2 REQUIRED)
|
|
|
|
@@ -48,20 +47,25 @@ if(UNIX)
|
2017-04-08 06:38:04 +08:00
|
|
|
find_package(UnitTest++ REQUIRED)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
- option(BUILD_SHARED_LIBS "Build shared Libraries." ON)
|
|
|
|
|
|
|
|
- file(GLOB WAS_HEADERS includes/was/*.h)
|
|
|
|
- install(FILES ${WAS_HEADERS} DESTINATION include/was)
|
|
|
|
- file(GLOB WASCORE_HEADERS includes/wascore/*.h)
|
|
|
|
- install(FILES ${WASCORE_HEADERS} DESTINATION include/wascore)
|
|
|
|
- file(GLOB WASCORE_DATA includes/wascore/*.dat)
|
|
|
|
- install(FILES ${WASCORE_DATA} DESTINATION include/wascore)
|
|
|
|
+elseif(WIN32)
|
|
|
|
+ message("-- Setting WIN32 options")
|
|
|
|
+ find_package(Casablanca REQUIRED)
|
|
|
|
+ add_definitions(-DUNICODE -D_UNICODE -D_WIN32)
|
|
|
|
else()
|
|
|
|
message("-- Unsupported Build Platform.")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
+option(BUILD_SHARED_LIBS "Build shared Libraries." ON)
|
|
|
|
+option(WASTORE_INSTALL_HEADERS "Install header files." ON)
|
|
|
|
+if(WASTORE_INSTALL_HEADERS)
|
|
|
|
+ file(GLOB WAS_HEADERS includes/was/*.h)
|
|
|
|
+ file(GLOB WASCORE_HEADERS includes/wascore/basic_types.h includes/wascore/constants.h)
|
|
|
|
+ file(GLOB WASCORE_DATA includes/wascore/*.dat)
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
# Compiler (not platform) specific settings
|
|
|
|
-if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
|
|
|
+if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|
|
|
message("-- Setting gcc options")
|
|
|
|
|
|
|
|
set(WARNINGS "-Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code")
|
2018-05-15 17:34:36 +08:00
|
|
|
@@ -78,22 +82,31 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
2017-04-08 06:38:04 +08:00
|
|
|
add_definitions(-DBOOST_LOG_DYN_LINK)
|
|
|
|
endif()
|
|
|
|
add_definitions(-D_TURN_OFF_PLATFORM_STRING)
|
|
|
|
-elseif((CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
|
|
- message("-- Setting clang options")
|
|
|
|
+elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
|
|
+ message("-- Setting clang options")
|
|
|
|
|
|
|
|
- set(WARNINGS "-Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls")
|
|
|
|
- set(OSX_SUPPRESSIONS "-Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-reorder -Wno-unused-local-typedefs")
|
|
|
|
- set(WARNINGS "${WARNINGS} ${OSX_SUPPRESSIONS}")
|
|
|
|
+ set(WARNINGS "-Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls")
|
|
|
|
+ set(OSX_SUPPRESSIONS "-Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-reorder -Wno-unused-local-typedefs")
|
|
|
|
+ set(WARNINGS "${WARNINGS} ${OSX_SUPPRESSIONS}")
|
|
|
|
|
|
|
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration")
|
|
|
|
- set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
|
|
|
- set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
|
|
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration")
|
|
|
|
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
|
|
|
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
|
|
|
|
|
|
|
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
|
|
|
|
- if (BUILD_SHARED_LIBS)
|
|
|
|
- add_definitions(-DBOOST_LOG_DYN_LINK)
|
|
|
|
- endif()
|
|
|
|
- add_definitions(-D_TURN_OFF_PLATFORM_STRING)
|
|
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
|
|
|
|
+ if (BUILD_SHARED_LIBS)
|
|
|
|
+ add_definitions(-DBOOST_LOG_DYN_LINK)
|
|
|
|
+ endif()
|
|
|
|
+ add_definitions(-D_TURN_OFF_PLATFORM_STRING)
|
|
|
|
+elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
|
|
|
+ message("-- Setting MSVC options")
|
|
|
|
+ add_compile_options(/bigobj)
|
|
|
|
+ add_compile_options(/MP)
|
|
|
|
+ if(BUILD_SHARED_LIBS)
|
|
|
|
+ add_definitions(-DWASTORAGE_DLL -D_USRDLL)
|
2018-05-15 17:34:36 +08:00
|
|
|
+ else()
|
|
|
|
+ add_definitions(-D_NO_WASTORAGE_API)
|
2017-04-08 06:38:04 +08:00
|
|
|
+ endif()
|
|
|
|
else()
|
|
|
|
message("-- Unknown compiler, success is doubtful.")
|
|
|
|
endif()
|
2018-05-15 17:34:36 +08:00
|
|
|
@@ -106,7 +119,6 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries)
|
2017-04-08 06:38:04 +08:00
|
|
|
set(AZURESTORAGE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/includes)
|
2018-05-15 17:34:36 +08:00
|
|
|
set(AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes ${CASABLANCA_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${LibXML2_INCLUDE_DIR})
|
2017-04-08 06:38:04 +08:00
|
|
|
|
|
|
|
-
|
|
|
|
set(AZURESTORAGE_LIBRARY azurestorage)
|
2018-05-15 17:34:36 +08:00
|
|
|
set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARY} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${UUID_LIBRARIES} ${LibXML2_LIBRARIES})
|
2017-04-08 06:38:04 +08:00
|
|
|
|
|
|
|
diff --git a/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake b/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake
|
2018-05-15 17:34:36 +08:00
|
|
|
index 5c1df3c..40e1767 100644
|
2017-04-08 06:38:04 +08:00
|
|
|
--- a/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake
|
|
|
|
+++ b/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake
|
2018-05-15 17:34:36 +08:00
|
|
|
@@ -23,10 +23,21 @@ find_path(CASABLANCA_INCLUDE_DIR
|
|
|
|
include
|
|
|
|
)
|
|
|
|
|
|
|
|
+find_package(cpprestsdk)
|
|
|
|
+
|
|
|
|
+if(cpprestsdk_FOUND)
|
|
|
|
+ set(CASABLANCA_LIBRARY cpprestsdk::cpprest)
|
|
|
|
+ set(CASABLANCA_PROCESS_LIBS CASABLANCA_LIBRARY)
|
|
|
|
+ set(CASABLANCA_PROCESS_INCLUDES CASABLANCA_INCLUDE_DIR)
|
|
|
|
+ libfind_process(CASABLANCA)
|
|
|
|
+ return()
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
# Library
|
2017-04-08 06:38:04 +08:00
|
|
|
find_library(CASABLANCA_LIBRARY
|
|
|
|
NAMES
|
|
|
|
cpprest
|
|
|
|
+ cpprest_2_9.lib
|
|
|
|
PATHS
|
|
|
|
${CASABLANCA_PKGCONF_LIBRARY_DIRS}
|
|
|
|
${CASABLANCA_DIR}
|
|
|
|
diff --git a/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt b/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt
|
2018-05-15 17:34:36 +08:00
|
|
|
index 59fedac..3737eeb 100644
|
2017-04-08 06:38:04 +08:00
|
|
|
--- a/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt
|
|
|
|
+++ b/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt
|
|
|
|
@@ -2,7 +2,7 @@ include_directories(${Boost_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR})
|
|
|
|
include_directories(${AZURESTORAGE_INCLUDE_DIRS})
|
|
|
|
|
|
|
|
# THE ORDER OF FILES IS VERY /VERY/ IMPORTANT
|
|
|
|
-if(UNIX)
|
|
|
|
+if(UNIX OR WIN32)
|
|
|
|
set(SOURCES
|
2018-05-15 17:34:36 +08:00
|
|
|
xml_wrapper.cpp
|
2017-04-08 06:38:04 +08:00
|
|
|
xmlhelpers.cpp
|
2018-05-15 17:34:36 +08:00
|
|
|
@@ -65,24 +65,46 @@ if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
|
2017-04-08 06:38:04 +08:00
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
|
|
|
|
endif()
|
|
|
|
if (APPLE)
|
|
|
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS}")
|
|
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS}")
|
|
|
|
else()
|
|
|
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+if(MSVC)
|
|
|
|
+ add_compile_options(/Yustdafx.h)
|
|
|
|
+ set_source_files_properties(stdafx.cpp PROPERTIES COMPILE_FLAGS "/Ycstdafx.h")
|
|
|
|
+
|
|
|
|
+ if (NOT CMAKE_GENERATOR MATCHES "Visual Studio .*")
|
|
|
|
+ set_property(SOURCE stdafx.cpp APPEND PROPERTY OBJECT_OUTPUTS "${CMAKE_CURRENT_BINARY_DIR}/stdafx.pch")
|
|
|
|
+ set_property(SOURCE ${SOURCES} APPEND PROPERTY OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/stdafx.pch")
|
|
|
|
+ endif()
|
|
|
|
+
|
|
|
|
+ list(APPEND SOURCES stdafx.cpp)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
add_library(${AZURESTORAGE_LIBRARY} ${SOURCES})
|
|
|
|
|
|
|
|
target_link_libraries(${AZURESTORAGE_LIBRARIES})
|
|
|
|
+if(WIN32)
|
2018-05-15 17:34:36 +08:00
|
|
|
+ target_link_libraries(${AZURESTORAGE_LIBRARY} Ws2_32.lib rpcrt4.lib xmllite.lib bcrypt.lib)
|
2017-04-08 06:38:04 +08:00
|
|
|
+endif()
|
|
|
|
|
|
|
|
# Portions specific to azure storage binary versioning and installation.
|
|
|
|
if(UNIX)
|
|
|
|
set_target_properties(${AZURESTORAGE_LIBRARY} PROPERTIES
|
|
|
|
SOVERSION ${AZURESTORAGE_VERSION_MAJOR}
|
|
|
|
VERSION ${AZURESTORAGE_VERSION_MAJOR}.${AZURESTORAGE_VERSION_MINOR})
|
|
|
|
-
|
|
|
|
- install(
|
|
|
|
- TARGETS ${AZURESTORAGE_LIBRARY}
|
|
|
|
- LIBRARY DESTINATION lib
|
|
|
|
- ARCHIVE DESTINATION lib
|
|
|
|
- )
|
|
|
|
+elseif(WIN32)
|
|
|
|
+ set_target_properties(${AZURESTORAGE_LIBRARY} PROPERTIES OUTPUT_NAME "wastorage")
|
|
|
|
endif()
|
|
|
|
+
|
|
|
|
+install(FILES ${WAS_HEADERS} DESTINATION include/was)
|
|
|
|
+install(FILES ${WASCORE_HEADERS} DESTINATION include/wascore)
|
|
|
|
+install(FILES ${WASCORE_DATA} DESTINATION include/wascore)
|
|
|
|
+
|
|
|
|
+install(
|
|
|
|
+ TARGETS ${AZURESTORAGE_LIBRARY}
|
|
|
|
+ RUNTIME DESTINATION bin
|
|
|
|
+ LIBRARY DESTINATION lib
|
|
|
|
+ ARCHIVE DESTINATION lib
|
|
|
|
+)
|