diff --git a/CMakeLists.txt b/CMakeLists.txt index b21ea15..dee09ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,11 +4,18 @@ cmake_minimum_required(VERSION 3.0) # set the project name project(openFPGALoader VERSION 0.1 LANGUAGES CXX) +option(BUILD_STATIC "Whether or not to build with static libraries" OFF) + ## specify the C++ standard set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_FLAGS_DEBUG "-g -Wall -Wextra") +if (BUILD_STATIC) + set(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++ -static") + set(BUILD_SHARED_LIBS OFF) +endif() + include(GNUInstallDirs) # By default: DATA_DIR="/usr/local/share" add_definitions(-DDATA_DIR=\"${CMAKE_INSTALL_FULL_DATAROOTDIR}\") @@ -100,6 +107,10 @@ if(NOT HAVE_ARGP) target_link_libraries(openFPGALoader /usr/lib/libargp.a) endif() +if (BUILD_STATIC) + set_target_properties(openFPGALoader PROPERTIES LINK_SEARCH_END_STATIC 1) +endif() + # libftdi < 1.4 as no usb_addr if (${LIBFTDI_VERSION} VERSION_LESS 1.4) set(CMAKE_CXX_FLAGS "-DOLD_FTDI_VERSION=1") diff --git a/INSTALL.md b/INSTALL.md index b45f9b5..ce44661 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -5,7 +5,7 @@ ``` $ mkdir build $ cd build -$ cmake ../ +$ cmake ../ # add -DBUILD_STATIC=ON to build a static version $ cmake --build . or $ make -j$(nproc) diff --git a/README.md b/README.md index 4fdae31..610dde1 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ To build the app: ```bash $ mkdir build $ cd build -$ cmake ../ +$ cmake ../ # add -DBUILD_STATIC=ON to build a static version $ cmake --build . or $ make -j$(nproc)