blob: f44bfd7428dc03297ce928be8e6084d70d3936a8 [file] [log] [blame]
cmake_minimum_required(VERSION 3.9)
project("blifexplorer")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
find_package(Qt5Widgets)
find_package(Qt5Gui)
find_package(Qt5Core)
#Check dependencies
if(NOT Qt5Widgets_FOUND)
message(FATAL_ERROR "Failed to find Qt5Widgets required for blifexplorer (on debian/ubuntu try 'sudo apt install qt5-default')")
endif()
if(NOT Qt5Gui_FOUND)
message(FATAL_ERROR "Failed to find Qt5Gui required for blifexplorer (on debian/ubuntu try 'sudo apt install qt5-default')")
endif()
if(NOT Qt5Core_FOUND)
message(FATAL_ERROR "Failed to find Qt5Core required for blifexplorer (on debian/ubuntu try 'sudo apt install qt5-default')")
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#Collect the source files
set(QRC_EXPLORERRES src/explorerres.qrc)
set(UI_CLOCKCONFIG src/clockconfig.ui)
file(GLOB_RECURSE EXEC_SOURCES src/*.cpp)
file(GLOB_RECURSE EXEC_HEADERS src/*.h)
files_to_dirs(EXEC_HEADERS EXEC_INCLUDE_DIRS)
#The generated header files appear in the CMAKE_CURRENT_BINARY_DIR, so ensure
#it is in the include directories
include_directories(${EXEC_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR})
#Create the executable
add_executable(blifexplorer
${UI_CLOCKCONFIG}
${QRC_EXPLORERRES}
${EXEC_SOURCES}
${EXEC_HEADERS}
)
target_link_libraries(blifexplorer
liblog
libarchfpga
libvtrutil
libodin_ii
libargparse
Qt5::Widgets
Qt5::Core
Qt5::Gui
${CMAKE_DL_LIBS}
)
#Supress IPO link warnings if IPO is enabled
get_target_property(TEST_BLIFEXPLORER_USES_IPO blifexplorer INTERPROCEDURAL_OPTIMIZATION)
if (TEST_BLIFEXPLORER_USES_IPO)
set_target_properties(blifexplorer PROPERTIES LINK_FLAGS ${IPO_LINK_WARN_SUPRESS_FLAGS})
endif()
install(TARGETS blifexplorer DESTINATION bin)