Skip to content

Commit ea7b2e7

Browse files
fix demo/CMakeLists.txt
1 parent 5e39f5d commit ea7b2e7

File tree

1 file changed

+36
-38
lines changed

1 file changed

+36
-38
lines changed

demo/CMakeLists.txt

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,55 @@
1-
cmake_minimum_required(VERSION 3.6)
2-
set(ProjectName apiDemo)
3-
project(${ProjectName})
4-
set(SRC_LIST
5-
${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp
6-
)
1+
cmake_minimum_required(VERSION 3.13)
2+
3+
project(DolphinDBDemo)
4+
5+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
6+
set(CMAKE_CXX_EXTENSIONS OFF)
7+
78
set(LINK_LIBS)
89
if(USE_OPENSSL)
910
add_definitions("-DUSE_OPENSSL=1")
10-
if(OPENSSL_PATH)
11-
set(ENV{OPENSSL_ROOT_DIR} ${OPENSSL_PATH})
12-
endif()
1311
find_package(OpenSSL REQUIRED)
1412
include_directories(${OPENSSL_INCLUDE_DIR})
1513
message("openssl include dir : ${OPENSSL_INCLUDE_DIR}")
1614
message("openssl ssl lib dir : ${OPENSSL_SSL_LIBRARY}")
1715
message("openssl crypto lib dir : ${OPENSSL_CRYPTO_LIBRARY}")
1816
endif()
1917
if(UNIX)
20-
add_compile_options(-std=c++11 -DLINUX -Wall -O0 -g -fPIC -Wl,-rpath,${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_SOURCE_DIR}/lib)
21-
if(ABI EQUAL 0)
22-
message("set _GLIBCXX_USE_CXX11_ABI to 0")
23-
add_definitions("-D_GLIBCXX_USE_CXX11_ABI=0")
24-
elseif(ABI EQUAL 1)
25-
message("set _GLIBCXX_USE_CXX11_ABI to 1")
26-
add_definitions("-D_GLIBCXX_USE_CXX11_ABI=1")
18+
check_include_file("uuid/uuid.h" HAS_UUID)
19+
if (NOT HAS_UUID)
20+
message(FATAL_ERROR "Failed to find uuid.")
2721
endif()
22+
add_compile_options(-std=c++11 -DLINUX -Wall -fPIC)
2823
list(APPEND LINK_LIBS DolphinDBAPI rt pthread)
2924
elseif(WIN32)
3025
if(MSVC)
31-
add_compile_options(-DWINDOWS -DNOMINMAX -D_DEBUG)
32-
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MDd")
33-
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
26+
add_compile_options(-DWINDOWS -DNOMINMAX)
3427
list(APPEND LINK_LIBS DolphinDBAPI)
3528
elseif(MINGW)
36-
add_compile_options(-std=c++11 -DWINDOWS -Wall -O0 -g -fPIC -Wl,-rpath,${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_SOURCE_DIR}/lib)
37-
if(ABI EQUAL 0)
38-
message("set _GLIBCXX_USE_CXX11_ABI to 0")
39-
add_definitions("-D_GLIBCXX_USE_CXX11_ABI=0")
40-
elseif(ABI EQUAL 1)
41-
message("set _GLIBCXX_USE_CXX11_ABI to 1")
42-
add_definitions("-D_GLIBCXX_USE_CXX11_ABI=1")
43-
endif()
29+
add_compile_options(-std=c++11 -DWINDOWS -Wall -fPIC)
4430
list(APPEND LINK_LIBS DolphinDBAPI pthread)
4531
endif()
4632
endif()
47-
include_directories(
48-
${CMAKE_CURRENT_SOURCE_DIR}/../include
49-
)
50-
link_directories(
51-
${CMAKE_CURRENT_SOURCE_DIR}/lib/
52-
)
53-
add_executable(${ProjectName} ${SRC_LIST})
54-
target_link_libraries(${ProjectName}
55-
${LINK_LIBS}
56-
)
57-
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin/)
33+
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
34+
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib/)
35+
add_executable(${CMAKE_PROJECT_NAME} ${PROJECT_SOURCE_DIR}/src/main.cpp)
36+
target_compile_features(${CMAKE_PROJECT_NAME} PRIVATE cxx_std_11)
37+
target_link_libraries(${CMAKE_PROJECT_NAME} ${LINK_LIBS})
38+
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin/)
39+
40+
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
41+
# C4251: Class member of an exported class is not marked dllexport.
42+
# This is triggered by std::string but we cannot modify STL.
43+
# C4100: Parameter is unused. We should fix this later.
44+
# C4996: The code uses a deprecated API. We should fix this later.
45+
target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE /W3 /MP /wd4251 /wd4100 /wd4996)
46+
# Unicode support of fmt (used in spdlog) requires /utf-8 of MSVC.
47+
target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE FMT_UNICODE=0)
48+
else()
49+
# overloaded-virtual: Derived class hides base class virtual functions
50+
# This is triggered by derived classes of Constant and we will fix this later
51+
target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -Wall -Wno-overloaded-virtual)
52+
# Enable Wextra and Wconversion when possible
53+
# Try clang hwasan when possible: -fsanitize=hwaddress -Wl,--no-relax
54+
set(CMAKE_CXX_FLAGS_DEV "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address -Werror -Wpedantic")
55+
endif()

0 commit comments

Comments
 (0)