1- cmake_minimum_required (VERSION 3.5 )
1+ cmake_minimum_required (VERSION 3.5...3.31 )
2+ set (CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake)
23project (wirehair)
34
5+
46set (CMAKE_CXX_STANDARD 11)
57include (xpflags )
68
@@ -11,6 +13,7 @@ if(NOT CMAKE_BUILD_TYPE)
1113endif ()
1214
1315option (MARCH_NATIVE "Use -march=native option" ON )
16+ option (BUILD_TESTS "build testsuite" ON )
1417
1518set (LIB_SOURCE_FILES
1619 wirehair.cpp
@@ -79,56 +82,60 @@ else()
7982 endforeach ()
8083 if (XP_BUILD_VERBOSE)
8184 message (STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS } " )
82- message (STATUS "CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG } " )
83- message (STATUS "CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE } " )
85+ message (STATUS "CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG } " ) # "-g -O0"
86+ message (STATUS "CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE } " ) # "-O3"
87+ message (STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO } " ) # "-g -O3"
8488 endif ()
8589 if (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" )
8690 add_definitions (-DLINUX_ARM=1 )
8791 endif ()
8892endif ()
8993
90- if (DONT_INSTALL_PYTHON)
91- set (optionalInstall EXCLUDE_FROM_ALL)
92- endif ()
93-
9494add_library (wirehair ${LIB_SOURCE_FILES} )
9595set_target_properties (wirehair PROPERTIES VERSION 2)
9696set_target_properties (wirehair PROPERTIES SOVERSION 2)
9797target_include_directories (wirehair PUBLIC $<BUILD_INTERFACE :${PROJECT_SOURCE_DIR } /include >
9898 $<INSTALL_INTERFACE :${CMAKE_INSTALL_INCLUDEDIR} >
9999 )
100100
101- add_executable (unit_test ${UNIT_TEST_SOURCE_FILES} )
102- target_link_libraries (unit_test wirehair )
101+ if (BUILD_TESTS)
102+ add_executable (unit_test ${UNIT_TEST_SOURCE_FILES} )
103+ target_link_libraries (unit_test wirehair )
103104
104- add_executable (gen_small_dseeds ${GEN_SMALL_DSEEDS} )
105- target_link_libraries (gen_small_dseeds wirehair )
105+ add_executable (gen_small_dseeds ${GEN_SMALL_DSEEDS} )
106+ target_link_libraries (gen_small_dseeds wirehair )
106107
107- add_executable (gen_peel_seeds ${GEN_PEEL_SEEDS} )
108- target_link_libraries (gen_peel_seeds wirehair )
108+ add_executable (gen_peel_seeds ${GEN_PEEL_SEEDS} )
109+ target_link_libraries (gen_peel_seeds wirehair )
109110
110- add_executable (gen_most_dseeds ${GEN_MOST_DSEEDS} )
111- target_link_libraries (gen_most_dseeds wirehair )
111+ add_executable (gen_most_dseeds ${GEN_MOST_DSEEDS} )
112+ target_link_libraries (gen_most_dseeds wirehair )
112113
113- add_executable (gen_dcounts ${GEN_DCOUNTS} )
114- target_link_libraries (gen_dcounts wirehair )
114+ add_executable (gen_dcounts ${GEN_DCOUNTS} )
115+ target_link_libraries (gen_dcounts wirehair )
115116
116- add_executable (gen_tables ${GEN_TABLES} )
117- target_link_libraries (gen_tables wirehair )
117+ add_executable (gen_tables ${GEN_TABLES} )
118+ target_link_libraries (gen_tables wirehair )
119+ endif ()
118120
119121include (GNUInstallDirs )
120122
121- set (targetsFile ${PROJECT_NAME } -targets)
122- install (TARGETS wirehair EXPORT ${targetsFile}
123- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
124- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
125- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
123+ set (lib wirehair)
126124if (DEFINED XP_NAMESPACE)
127125 set (nameSpace NAMESPACE ${XP_NAMESPACE} ::)
126+ string (PREPEND lib "${XP_NAMESPACE} ::" )
128127endif ()
129128if (NOT DEFINED XP_INSTALL_CMAKEDIR)
130129 set (XP_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR} /cmake)
131130endif ()
131+ set (targetsFile ${PROJECT_NAME } -targets)
132+ xpPackageDevel (TARGETS_FILE ${targetsFile} LIBRARIES ${lib} )
133+ install (TARGETS wirehair EXPORT ${targetsFile}
134+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
135+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
136+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
132137install (EXPORT ${targetsFile} DESTINATION ${XP_INSTALL_CMAKEDIR} ${nameSpace} )
133138install (DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
134- install (DIRECTORY python DESTINATION ${CMAKE_INSTALL_PREFIX } ${optionalInstall} )
139+ if (NOT DONT_INSTALL_PYTHON)
140+ install (DIRECTORY python DESTINATION ${CMAKE_INSTALL_PREFIX } )
141+ endif ()
0 commit comments