-add_definitions("-D_BSD_SOURCE") # for htole32()
+add_definitions("-D_DEFAULT_SOURCE") # for htole32()
+add_definitions("-D_POSIX_C_SOURCE=200112L") # for nanosleep() and lroundf()
+
+# Express a preference for C99 format strings when using MinGW, see:
+# https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/
+add_definitions("-D__USE_MINGW_ANSI_STDIO=1")
# Find packages needed to build library
find_package(libusb-1.0 REQUIRED)
include_directories(${LIBUSB_1_INCLUDE_DIRS})
-set(SRC am7xxx.c serialize.c)
+set(SRC am7xxx.c serialize.c tools.c)
# Build the library
add_library(am7xxx SHARED ${SRC})
install(TARGETS am7xxx-static
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
-target_link_libraries(am7xxx ${LIBUSB_1_LIBRARIES})
-target_link_libraries(am7xxx-static ${LIBUSB_1_LIBRARIES})
+if(NOT WIN32)
+ find_library(MATH_LIB m)
+else()
+ # not needed on windows
+ set(MATH_LIB "")
+endif()
+
+target_link_libraries(am7xxx ${MATH_LIB} ${LIBUSB_1_LIBRARIES})
+target_link_libraries(am7xxx-static ${MATH_LIB} ${LIBUSB_1_LIBRARIES})
# Install the header files
install(FILES "am7xxx.h"