@@ -5,91 +5,18 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
5
5
6
6
project (svgfill)
7
7
8
- cmake_policy (SET CMP0074 NEW) # find_package() uses <PackageName>_ROOT variables.
9
- if (POLICY CMP0144)
10
- cmake_policy (SET CMP0144 NEW) # find_package() uses upper-case <PACKAGENAME>_ROOT variables.
11
- endif ()
12
-
13
- include (GNUInstallDirs)
14
-
15
- # Specify paths to install files
16
- if (NOT BINDIR)
17
- set (BINDIR bin)
18
- endif ()
19
- if (NOT IS_ABSOLUTE ${BINDIR} )
20
- set (BINDIR ${CMAKE_INSTALL_BINDIR} )
21
- endif ()
22
- message (STATUS "BINDIR: ${BINDIR} " )
23
-
24
- if (NOT INCLUDEDIR)
25
- set (INCLUDEDIR include )
26
- endif ()
27
- if (NOT IS_ABSOLUTE ${INCLUDEDIR} )
28
- set (INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR} )
29
- endif ()
30
- message (STATUS "INCLUDEDIR: ${INCLUDEDIR} " )
31
-
32
- if (NOT LIBDIR)
33
- set (LIBDIR lib)
34
- endif ()
35
- if (NOT IS_ABSOLUTE ${LIBDIR} )
36
- set (LIBDIR ${CMAKE_INSTALL_LIBDIR} )
37
- endif ()
38
- message (STATUS "LIBDIR: ${LIBDIR} " )
39
-
40
- set (CGAL_LIBRARY_NAMES libCGAL_Core libCGAL_ImageIO libCGAL)
41
-
42
- if ("${CGAL_INCLUDE_DIR} " STREQUAL "" )
43
- set (CGAL_INCLUDE_DIR "/usr/include/" CACHE FILEPATH "CGAL header files" )
44
- message (STATUS "Looking for CGAL include files in: ${CGAL_INCLUDE_DIR} " )
45
- message (STATUS "Use CGAL_INCLUDE_DIR to specify another directory" )
46
- else ()
47
- set (CGAL_INCLUDE_DIR ${CGAL_INCLUDE_DIR} CACHE FILEPATH "CGAL header files" )
48
- message (STATUS "Looking for CGAL include files in: ${CGAL_INCLUDE_DIR} " )
49
- endif ()
50
-
51
- if (NOT "${CGAL_LIBRARY_DIR} " STREQUAL "" )
52
- set (CGAL_LIBRARY_DIR ${CGAL_LIBRARY_DIR} CACHE FILEPATH "CGAL library files" )
53
- message (STATUS "Looking for CGAL library files in: ${CGAL_LIBRARY_DIR} " )
54
- endif ()
55
-
56
8
if (WASM_BUILD)
57
9
set (CMAKE_FIND_ROOT_PATH_BACKUP "${CMAKE_FIND_ROOT_PATH} " )
58
10
set (CMAKE_FIND_ROOT_PATH "" )
59
11
endif ()
60
12
61
- find_library (libCGAL NAMES CGAL PATHS ${CGAL_LIBRARY_DIR} NO_DEFAULT_PATH)
62
-
63
- if (libCGAL)
64
- message (STATUS "CGAL library files found" )
65
- foreach (lib ${CGAL_LIBRARY_NAMES} )
66
- string (REPLACE libCGAL "${lib} " lib_path "${libCGAL} " )
67
- list (APPEND CGAL_LIBRARIES "${lib_path} " )
68
- endforeach ()
69
- else ()
70
- if (NOT "${CGAL_LIBRARY_DIR} " STREQUAL "" )
71
- file (GLOB CGAL_LIBRARIES ${CGAL_LIBRARY_DIR} /CGAL*.lib)
72
- list (LENGTH CGAL_LIBRARY_NAMES num_cgal_library_names)
73
- list (LENGTH CGAL_LIBRARIES num_cgal_libraries)
74
- link_directories ("${CGAL_LIBRARY_DIR} " )
75
- if (NOT "${num_cgal_library_names} " STREQUAL "${num_cgal_libraries} " )
76
- message (FATAL_ERROR "Unable to find CGAL library files, aborting" )
77
- endif ()
78
- message (STATUS "CGAL library files found" )
79
- endif ()
80
- endif ()
81
-
82
- find_library (libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH)
83
- find_library (libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH)
84
- if (NOT libGMP)
85
- message (FATAL_ERROR "Unable to find GMP library files, aborting" )
86
- endif ()
87
- if (NOT libMPFR)
88
- message (FATAL_ERROR "Unable to find MPFR library files, aborting" )
89
- endif ()
13
+ find_package (Boost REQUIRED CONFIG)
14
+ find_package (svgpp REQUIRED CONFIG)
15
+ find_package (libxml2 REQUIRED CONFIG)
16
+ find_package (CGAL REQUIRED CONFIG)
17
+ find_package (gmp REQUIRED CONFIG)
18
+ find_package (mpfr REQUIRED CONFIG)
90
19
91
- list (APPEND CGAL_LIBRARIES "${libMPFR} " )
92
- list (APPEND CGAL_LIBRARIES "${libGMP} " )
93
20
94
21
if (WIN32 AND ("$ENV{CONDA_BUILD} " STREQUAL "" ))
95
22
set (Boost_USE_STATIC_LIBS ON )
@@ -112,31 +39,24 @@ if (MSVC)
112
39
add_definitions (-bigobj)
113
40
endif ()
114
41
115
- find_package (Boost)
116
- message (STATUS "Boost include files found in ${Boost_INCLUDE_DIRS} " )
117
-
118
42
if (WASM_BUILD)
119
43
set (CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH_BACKUP} " )
120
44
endif ()
121
45
122
46
123
-
124
- include_directories (${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR}
125
- ${CGAL_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${MPFR_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} /3rdparty/svgpp/include
126
- )
127
-
128
47
file (GLOB LIB_H_FILES src/*.h)
48
+ message (STATUS "Found header files: ${LIB_H_FILES} " )
129
49
file (GLOB LIB_CPP_FILES src/svgfill.cpp src/arrange_polygons.cpp)
130
- set (LIB_SRC_FILES ${LIB_H_FILES} ${LIB_CPP_FILES} )
131
- add_library (svgfill ${LIB_SRC_FILES } )
132
- target_link_libraries (svgfill ${Boost_LIBRARIES} ${BCRYPT_LIBRARIES} ${LIBXML2_LIBRARIES} ${CGAL_LIBRARIES} )
50
+
51
+ add_library (svgfill ${LIB_H_FILES} ${LIB_CPP_FILES } )
52
+ target_link_libraries (svgfill Boost::boost svgpp::svgpp LibXml2::LibXml2 CGAL::CGAL )
133
53
134
54
add_executable (svgfill_exe src/main.cpp)
135
55
target_link_libraries (svgfill_exe svgfill)
136
56
set_property (TARGET svgfill_exe PROPERTY OUTPUT_NAME svgfill)
137
57
if (WIN32 )
138
58
# both the library and the executable now result in a file with basename svgfill,
139
- # on linux the the library is prefixed with lib as libsvgfill.a. Windows does not
59
+ # on linux the library is prefixed with lib as libsvgfill.a. Windows does not
140
60
# have this mechanism, so on windows the linker would be created an import library
141
61
# for the executable, also named svgfill.lib. This naming conflict results in:
142
62
# LINK : fatal error LNK1149: output filename matches input filename
@@ -145,6 +65,11 @@ if(WIN32)
145
65
target_link_options (svgfill_exe PRIVATE "/NOIMPLIB" )
146
66
endif ()
147
67
148
- install (TARGETS svgfill_exe DESTINATION ${BINDIR} )
149
- install (TARGETS svgfill DESTINATION ${LIBDIR} )
150
- install (FILES ${LIB_H_FILES} DESTINATION ${INCLUDEDIR} )
68
+ set_target_properties (svgfill PROPERTIES PUBLIC_HEADER ${LIB_H_FILES} )
69
+ install (TARGETS svgfill)
70
+
71
+ install (TARGETS svgfill_exe DESTINATION "."
72
+ RUNTIME DESTINATION bin
73
+ ARCHIVE DESTINATION lib
74
+ LIBRARY DESTINATION lib
75
+ )
0 commit comments