@@ -6,8 +6,15 @@ project(qrllib)
66
77set (CMAKE_CXX_STANDARD 14)
88#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra -pedantic")
9+ if (${CMAKE_VERSION} VERSION_GREATER "3.10.3" )
10+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread" )
11+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread" )
12+ endif ()
913set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wno-deprecated-declarations" )
1014set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -Wno-deprecated" )
15+ if (${CMAKE_VERSION} VERSION_GREATER "3.13" )
16+ cmake_policy (SET CMP0078 OLD )
17+ endif ()
1118
1219set (CMAKE_VERBOSE_MAKEFILE TRUE )
1320set (CMAKE_ERROR_DEPRECATED FALSE )
@@ -275,12 +282,24 @@ if (BUILD_PYTHON)
275282
276283 # Intentionally use a deprecated version to provide support for the raspberry pi
277284 # Basic pyqrllib - XmssBasic, etc.
278- SWIG_ADD_MODULE (pyqrllib
279- ${language}
280- ${SWIG_INTERFACE}
281- ${LIB_QRL_SRC}
282- ${LIBXMSSALT_SRC}
283- )
285+ if (${CMAKE_VERSION} VERSION_LESS_EQUAL "3.10.3" )
286+ SWIG_ADD_MODULE (pyqrllib
287+ ${language}
288+ ${SWIG_INTERFACE}
289+ ${LIB_QRL_SRC}
290+ ${LIBXMSSALT_SRC}
291+ )
292+ else ()
293+ SWIG_ADD_LIBRARY (pyqrllib
294+ LANGUAGE ${language}
295+ OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/
296+ OUTFILE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/
297+ TYPE MODULE
298+ SOURCES ${SWIG_INTERFACE}
299+ ${LIB_QRL_SRC}
300+ ${LIBXMSSALT_SRC}
301+ )
302+ endif ()
284303
285304 SWIG_LINK_LIBRARIES (pyqrllib
286305 shasha
@@ -291,21 +310,21 @@ if (BUILD_PYTHON)
291310 ${LIB_QRL_INCLUDES}
292311 ${LIB_SHASHA_INCLUDES}
293312 )
294-
295- add_custom_command (TARGET ${SWIG_MODULE_pyqrllib_REAL_NAME}
296- POST_BUILD
297- COMMENT "Moving SWIG files to output dir"
298- COMMAND ${CMAKE_COMMAND} -E
299- copy_if_different $<TARGET_FILE :${SWIG_MODULE_pyqrllib_REAL_NAME} >
300- ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/$<TARGET_LINKER_FILE_NAME:${SWIG_MODULE_pyqrllib_REAL_NAME}>
301- )
302-
303- add_custom_command (TARGET ${SWIG_MODULE_pyqrllib_REAL_NAME}
304- POST_BUILD
305- COMMENT ${swig_extra_generated_files}
306- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${swig_extra_generated_files} ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/pyqrllib.py
307- )
308-
313+ if ( ${CMAKE_VERSION} VERSION_LESS_EQUAL "3.10.3" )
314+ add_custom_command (TARGET ${SWIG_MODULE_pyqrllib_REAL_NAME}
315+ POST_BUILD
316+ COMMENT "Moving SWIG files to output dir"
317+ COMMAND ${CMAKE_COMMAND} -E
318+ copy_if_different $<TARGET_FILE :${SWIG_MODULE_pyqrllib_REAL_NAME} >
319+ ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/$<TARGET_LINKER_FILE_NAME:${SWIG_MODULE_pyqrllib_REAL_NAME}>
320+ )
321+
322+ add_custom_command (TARGET ${SWIG_MODULE_pyqrllib_REAL_NAME}
323+ POST_BUILD
324+ COMMENT ${swig_extra_generated_files}
325+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${swig_extra_generated_files} ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/pyqrllib.py
326+ )
327+ endif ()
309328 ###################################################
310329 # Dilithium
311330 set (SWIG_INTERFACE src/api/dilithium.i)
@@ -323,30 +342,43 @@ if (BUILD_PYTHON)
323342 ${LIB_DILITHIUM_INCLUDES}
324343 )
325344
326- SWIG_ADD_MODULE (dilithium
327- ${language}
328- ${SWIG_INTERFACE}
329- ${LIB_DILITHIUM_SRC}
330- ${REF_DILITHIUM_SRC}
331- )
345+ if (${CMAKE_VERSION} VERSION_LESS_EQUAL "3.10.3" )
346+ SWIG_ADD_MODULE (dilithium
347+ ${language}
348+ ${SWIG_INTERFACE}
349+ ${LIB_DILITHIUM_SRC}
350+ ${REF_DILITHIUM_SRC}
351+ )
352+ else ()
353+ SWIG_ADD_LIBRARY (dilithium
354+ LANGUAGE ${language}
355+ OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/
356+ OUTFILE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/
357+ TYPE MODULE
358+ SOURCES ${SWIG_INTERFACE}
359+ ${LIB_DILITHIUM_SRC}
360+ ${REF_DILITHIUM_SRC}
361+ )
362+ endif ()
332363
333364 SWIG_LINK_LIBRARIES (dilithium
334365 ${SWIG_LANG_LIBRARIES} )
335366
336- add_custom_command (TARGET ${SWIG_MODULE_dilithium_REAL_NAME}
337- POST_BUILD
338- COMMENT "Moving SWIG files to output dir"
339- COMMAND ${CMAKE_COMMAND} -E
340- copy_if_different $<TARGET_FILE :${SWIG_MODULE_dilithium_REAL_NAME} >
341- ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/$<TARGET_LINKER_FILE_NAME:${SWIG_MODULE_dilithium_REAL_NAME}>
342- )
343-
344- add_custom_command (TARGET ${SWIG_MODULE_dilithium_REAL_NAME}
345- POST_BUILD
346- COMMENT ${swig_extra_generated_files}
347- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${swig_extra_generated_files} ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/dilithium.py
348- )
349-
367+ if (${CMAKE_VERSION} VERSION_LESS_EQUAL "3.10.3" )
368+ add_custom_command (TARGET ${SWIG_MODULE_dilithium_REAL_NAME}
369+ POST_BUILD
370+ COMMENT "Moving SWIG files to output dir"
371+ COMMAND ${CMAKE_COMMAND} -E
372+ copy_if_different $<TARGET_FILE :${SWIG_MODULE_dilithium_REAL_NAME} >
373+ ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/$<TARGET_LINKER_FILE_NAME:${SWIG_MODULE_dilithium_REAL_NAME}>
374+ )
375+
376+ add_custom_command (TARGET ${SWIG_MODULE_dilithium_REAL_NAME}
377+ POST_BUILD
378+ COMMENT ${swig_extra_generated_files}
379+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${swig_extra_generated_files} ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/dilithium.py
380+ )
381+ endif ()
350382
351383 # Kyber
352384 set (SWIG_INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} /src/api/kyber.i)
@@ -356,30 +388,43 @@ if (BUILD_PYTHON)
356388 message (STATUS "CMAKE_SWIG_OUTDIR: " ${CMAKE_SWIG_OUTDIR} )
357389 message (STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY: " ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
358390
359- SWIG_ADD_MODULE (kyber
360- ${language}
361- ${SWIG_INTERFACE}
362- ${LIB_KYBER_SRC}
363- ${REF_KYBER_SRC}
364- )
391+ if (${CMAKE_VERSION} VERSION_LESS_EQUAL "3.10.3" )
392+ SWIG_ADD_MODULE (kyber
393+ ${language}
394+ ${SWIG_INTERFACE}
395+ ${LIB_KYBER_SRC}
396+ ${REF_KYBER_SRC}
397+ )
398+ else ()
399+ SWIG_ADD_LIBRARY (kyber
400+ LANGUAGE ${language}
401+ OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/
402+ OUTFILE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/
403+ TYPE MODULE
404+ SOURCES ${SWIG_INTERFACE}
405+ ${LIB_KYBER_SRC}
406+ ${REF_KYBER_SRC}
407+ )
408+ endif ()
365409
366410 SWIG_LINK_LIBRARIES (kyber
367411 ${SWIG_LANG_LIBRARIES} )
368412
369- add_custom_command (TARGET ${SWIG_MODULE_kyber_REAL_NAME}
370- POST_BUILD
371- COMMENT "Moving SWIG files to output dir"
372- COMMAND ${CMAKE_COMMAND} -E
373- copy_if_different $<TARGET_FILE :${SWIG_MODULE_kyber_REAL_NAME} >
374- ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/$<TARGET_LINKER_FILE_NAME:${SWIG_MODULE_kyber_REAL_NAME}>
375- )
376-
377- add_custom_command (TARGET ${SWIG_MODULE_kyber_REAL_NAME}
378- POST_BUILD
379- COMMENT ${swig_extra_generated_files}
380- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${swig_extra_generated_files} ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/kyber.py
381- )
382-
413+ if (${CMAKE_VERSION} VERSION_LESS_EQUAL "3.10.3" )
414+ add_custom_command (TARGET ${SWIG_MODULE_kyber_REAL_NAME}
415+ POST_BUILD
416+ COMMENT "Moving SWIG files to output dir"
417+ COMMAND ${CMAKE_COMMAND} -E
418+ copy_if_different $<TARGET_FILE :${SWIG_MODULE_kyber_REAL_NAME} >
419+ ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/$<TARGET_LINKER_FILE_NAME:${SWIG_MODULE_kyber_REAL_NAME}>
420+ )
421+
422+ add_custom_command (TARGET ${SWIG_MODULE_kyber_REAL_NAME}
423+ POST_BUILD
424+ COMMENT ${swig_extra_generated_files}
425+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${swig_extra_generated_files} ${CMAKE_CURRENT_SOURCE_DIR} /pyqrllib/kyber.py
426+ )
427+ endif ()
383428endif ()
384429
385430## SWIG + API - Go related stuff
0 commit comments