"vscode:/vscode.git/clone" did not exist on "8772fe0de8b9332be501bf0e61bd5502e3075e60"
CMakeLists.txt 2.49 KB
Newer Older
1

2
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
3

4
5
6
7
8
# Pybind11's cmake scripts enable link time optimization by default.  However,
# it makes linking take a really long time and doesn't seem to substantively
# improve runtime performance.  So we disable LTO here to make building dlib
# faster.
set(PYBIND11_LTO_CXX_FLAGS "")
Davis King's avatar
Davis King committed
9

10
11
12
13
14
15
16
17
18
19

# Avoid cmake warnings about changes in behavior of some Mac OS X path 
# variable we don't care about.
if (POLICY CMP0042)
    cmake_policy(SET CMP0042 NEW)
endif()


# To avoid dll hell, always link everything statically when compiling in
# visual studio.  This way, the resulting library won't depend on a bunch
Davis King's avatar
Davis King committed
20
# of other dll files and can be safely copied to someone else's computer
21
22
23
24
25
# and expected to run.
if (MSVC)
    include(${CMAKE_CURRENT_LIST_DIR}/../../dlib/cmake_utils/tell_visual_studio_to_use_static_runtime.cmake)
endif()

Davis King's avatar
Davis King committed
26
27
add_subdirectory(../../dlib/external/pybind11 pybind11_build)
add_subdirectory(../../dlib dlib_build)
28
29

if (USING_OLD_VISUAL_STUDIO_COMPILER)
Davis King's avatar
Davis King committed
30
   message(FATAL_ERROR "You have to use a version of Visual Studio that supports C++11.  As of December 2017, the only versions that have good enough C++11 support to compile the dlib Python API is a fully updated Visual Studio 2015 or a fully updated Visual Studio 2017.  Older versions of either of these compilers have bad C++11 support and will fail to compile the Python extension. ***SO UPDATE YOUR VISUAL STUDIO TO MAKE THIS ERROR GO AWAY***")
31
32
endif()

33

34
35
add_definitions(-DDLIB_VERSION=${DLIB_VERSION})

Davis King's avatar
Davis King committed
36
# Tell cmake to compile all these cpp files into a dlib python module.
37
38
39
set(python_srcs
   src/dlib.cpp
   src/matrix.cpp
40
   src/vector.cpp
41
   src/svm_c_trainer.cpp
42
   src/svm_rank_trainer.cpp
Davis King's avatar
Davis King committed
43
   src/decision_functions.cpp
Davis King's avatar
Davis King committed
44
45
   src/other.cpp
   src/basic.cpp
Davis King's avatar
Davis King committed
46
   src/cca.cpp
47
   src/sequence_segmenter.cpp
48
   src/svm_struct.cpp
49
   src/image.cpp
50
   src/image2.cpp
51
   src/image3.cpp
52
   src/image4.cpp
53
   src/rectangles.cpp
54
   src/object_detection.cpp
55
   src/shape_predictor.cpp
56
   src/correlation_tracker.cpp
57
   src/face_recognition.cpp
58
   src/cnn_face_detector.cpp
59
   src/global_optimization.cpp
60
   src/image_dataset_metadata.cpp
61
   src/numpy_returns.cpp
62
   src/line.cpp
63
64
65
66
67
)

# Only add the GUI module if requested
if(NOT ${DLIB_NO_GUI_SUPPORT})
   list(APPEND python_srcs src/gui.cpp)
Davis King's avatar
Davis King committed
68
endif()
69

70
71
72
73
pybind11_add_module(dlib_python ${python_srcs})
target_link_libraries(dlib_python PRIVATE dlib::dlib)
# Set the output library name to dlib because that's what setup.py and distutils expects.
set_target_properties(dlib_python PROPERTIES OUTPUT_NAME dlib)
74