@@ -8,77 +8,42 @@ set(WARNINGS)
88
99set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR} /cmake/Modules/" )
1010
11+ option (BUILD_TESTS "Build test codes" OFF )
12+ option (BUILD_SAMPLES "Build sample codes" OFF )
13+
1114# Platform (not compiler) specific settings
12- if (IOS )
13- set (IOS_SOURCE_DIR "${CMAKE_SOURCE_DIR} /../Build_iOS" )
14- set (Boost_FRAMEWORK "-F ${IOS_SOURCE_DIR} -framework boost" )
15- set (Boost_INCLUDE_DIR "${IOS_SOURCE_DIR} /boost.framework/Headers" )
16-
17- set (OPENSSL_FOUND 1)
18- set (OPENSSL_INCLUDE_DIR "${IOS_SOURCE_DIR} /openssl/include" )
19- set (OPENSSL_LIBRARIES
20- "${IOS_SOURCE_DIR} /openssl/lib/libcrypto.a"
21- "${IOS_SOURCE_DIR} /openssl/lib/libssl.a"
22- )
23-
24- set (CASABLANCA_INCLUDE_DIRS "${IOS_SOURCE_DIR} /casablanca/include" )
25- set (CASABLANCA_LIBRARIES "${IOS_SOURCE_DIR} /casablanca/lib/libcasablanca.a" )
26-
27- # The cxx_flags must be set here, because the ios-cmake toolchain file unfortunately sets "-headerpad_max_install_names" which is not a valid clang flag.
28- set (CMAKE_CXX_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden" )
29-
30- set (BUILD_SHARED_LIBS OFF )
31- elseif (UNIX ) # This includes OSX
32- find_package (Boost REQUIRED COMPONENTS log log_setup random system thread locale regex filesystem )
15+ if (UNIX )
16+ find_package (Boost REQUIRED COMPONENTS log log_setup random system thread locale regex filesystem chrono date_time )
3317 find_package (Threads REQUIRED )
3418 find_package (OpenSSL REQUIRED )
19+ find_package (Glibmm REQUIRED )
3520 find_package (LibXML++ REQUIRED )
3621 find_package (UUID REQUIRED )
3722 find_package (Casablanca REQUIRED )
3823
39- set (UNITTEST_LIBRARY "${CMAKE_SOURCE_DIR} /tests/UnitTest++/libUnitTest++.a" )
40-
41- option (BUILD_SHARED_LIBS "Build shared Libraries." ON )
42- elseif (WIN32 )
43- option (BUILD_SHARED_LIBS "Build shared Libraries." ON )
44-
45- add_definitions (-DUNICODE )
46-
47- if (NOT BUILD_SHARED_LIBS )
48- # This causes cmake to not link the test libraries separately, but instead hold onto their object files.
49- set (TEST_LIBRARY_TARGET_TYPE OBJECT)
24+ if (BUILD_TESTS)
25+ find_package (UnitTest++ REQUIRED )
5026 endif ()
5127
52- set (LIB lib )
28+ option ( BUILD_SHARED_LIBS "Build shared Libraries." ON )
5329else ()
5430 message ("-- Unsupported Build Platform." )
5531endif ()
5632
5733# Compiler (not platform) specific settings
58- if (("${CMAKE_CXX_COMPILER_ID} " MATCHES "Clang" ) OR IOS )
59- message ("-- Setting clang options" )
60-
61- set (WARNINGS "-Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls" )
62- 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" )
63- set (WARNINGS "${WARNINGS} ${OSX_SUPPRESSIONS} " )
64-
65- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration" )
66- set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
67- set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11" )
68-
69- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing" )
70- set (STRICT_CXX_FLAGS ${WARNINGS} "-Werror -pedantic" )
71- elseif ("${CMAKE_CXX_COMPILER_ID} " MATCHES "GNU" )
34+ if ("${CMAKE_CXX_COMPILER_ID} " MATCHES "GNU" )
7235 message ("-- Setting gcc options" )
7336
7437 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" )
7538 set (LINUX_SUPPRESSIONS "-Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-unused-function -Wno-char-subscripts -Wno-switch -Wno-unused-but-set-parameter -Wno-unused-value -Wno-unused-local-typedefs -Wno-unused-parameter" )
76-
7739 set (WARNINGS "${WARNINGS} ${LINUX_SUPPRESSIONS} " )
78- set (LD_FLAGS "${LD_FLAGS} -Wl,-z,defs" )
7940
41+ set (LD_FLAGS "${LD_FLAGS} -Wl,-z,defs" )
42+
8043 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing" )
44+
8145 set (STRICT_CXX_FLAGS ${WARNINGS} "-Werror -pedantic" )
46+
8247 add_definitions (-DBOOST_LOG_DYN_LINK )
8348else ()
8449 message ("-- Unknown compiler, success is doubtful." )
@@ -90,13 +55,24 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries)
9055set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /Binaries)
9156
9257set (AZURESTORAGE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /includes)
93- set (AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} /includes ${CASABLANCA_INCLUDE_DIRS} ${Boost_INCLUDE_DIR } ${OPENSSL_INCLUDE_DIR } ${LibXML++_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} )
58+ set (AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} /includes ${CASABLANCA_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS } ${OPENSSL_INCLUDE_DIRS } ${LibXML++_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${Glibmm_INCLUDE_DIRS } )
9459
9560set (AZURESTORAGE_LIBRARY azurestorage)
96- set (AZURESTORAGE_LIBRARY_TEST azurestoragetest)
97- set (AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARIES} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${LibXML++_LIBRARIES} ${UUID_LIBRARIES} )
61+ set (AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARIES} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${LibXML++_LIBRARIES} ${UUID_LIBRARIES} ${Glibmm_LIBRARIES} )
9862
99- include_directories (${AZURESTORAGE_INCLUDE_DIRS} )
63+ # Set version numbers centralized
64+ set (AZURESTORAGE_VERSION_MAJOR 0)
65+ set (AZURESTORAGE_VERSION_MINOR 6)
66+ set (AZURESTORAGE_VERSION_REVISION 0)
10067
68+ # Add sources per configuration
10169add_subdirectory (src )
102- #add_subdirectory(tests)
70+
71+ if (BUILD_TESTS)
72+ set (AZURESTORAGE_LIBRARY_TEST azurestoragetest)
73+ add_subdirectory (tests )
74+ endif ()
75+
76+ if (BUILD_SAMPLES)
77+ add_subdirectory (samples )
78+ endif ()
0 commit comments