Reorganize options in CMakeList.txt at the beginning with right defaults. Add condition in endif()
This commit is contained in:
parent
cfc73be627
commit
986f5ea9ad
@ -4,6 +4,16 @@
|
|||||||
# Robert Hauck - Enable support for PNG/Freetype
|
# Robert Hauck - Enable support for PNG/Freetype
|
||||||
# Qiangqiang Wu - Add biicode support
|
# Qiangqiang Wu - Add biicode support
|
||||||
|
|
||||||
|
|
||||||
|
#https://cmake.org/cmake-tutorial/
|
||||||
|
#https://cmake.org/cmake/help/v3.3/module/CMakeDependentOption.html?highlight=cmakedependentoption
|
||||||
|
# use CACHE FORCE? or set(USE_meganz_mingw_std_threads ON) or delete CMakecache.txt or the entery build dir
|
||||||
|
option(USE_meganz_mingw_std_threads "replaced boost.thread with meganz's mingw-std-threads." OFF)
|
||||||
|
option(USE_UNICODE "Use Unicode Character Set" ON)
|
||||||
|
option(ENABLE_PNG "Enable the use of PNG" OFF)
|
||||||
|
option(LIBPNG_FROM_OS "Use libpng from operating system." ON)
|
||||||
|
option(ENABLE_JPEG "Enable the use of JPEG" OFF)
|
||||||
|
option(LIBJPEG_FROM_OS "Use libjpeg from operating system." ON)
|
||||||
option(CMAKE_VERBOSE_PREPROCESSOR "Show annoying debug messages during compilation." OFF)
|
option(CMAKE_VERBOSE_PREPROCESSOR "Show annoying debug messages during compilation." OFF)
|
||||||
option(CMAKE_STOP_VERBOSE_PREPROCESSOR "Stop compilation after showing the annoying debug messages." ON)
|
option(CMAKE_STOP_VERBOSE_PREPROCESSOR "Stop compilation after showing the annoying debug messages." ON)
|
||||||
option(BUILD_NANA_DEMOS "Build all the demos form the nana_demo repository." ON)
|
option(BUILD_NANA_DEMOS "Build all the demos form the nana_demo repository." ON)
|
||||||
@ -24,37 +34,47 @@ if(BIICODE)
|
|||||||
add_biicode_targets()
|
add_biicode_targets()
|
||||||
|
|
||||||
return()
|
return()
|
||||||
endif()
|
endif(BIICODE)
|
||||||
|
|
||||||
project(nana)
|
project(nana)
|
||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
|
||||||
|
|
||||||
#Global MSVC definitions
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(MSVC)
|
add_definitions(-DWIN32)
|
||||||
|
|
||||||
|
#Global MSVC definitions
|
||||||
|
if(MSVC)
|
||||||
option(WIN32_USE_MP "Set to ON to build nana with the /MP option (Visual Studio 2005 and above)." ON)
|
option(WIN32_USE_MP "Set to ON to build nana with the /MP option (Visual Studio 2005 and above)." ON)
|
||||||
# ??
|
# ??
|
||||||
if(WIN32_USE_MP)
|
if(WIN32_USE_MP)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
||||||
endif()
|
endif(WIN32_USE_MP)
|
||||||
|
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
add_definitions(-DMINGW)
|
||||||
|
#Find PNG
|
||||||
|
if(USE_meganz_mingw_std_threads)
|
||||||
|
add_definitions(-DUSE_github_com_meganz_mingw_std_threads)
|
||||||
|
# remove_definitions()
|
||||||
|
endif(USE_meganz_mingw_std_threads)
|
||||||
|
endif(MINGW)
|
||||||
|
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
|
|
||||||
#Unicode
|
#Unicode
|
||||||
option(USE_UNICODE "Use Unicode Character Set")
|
|
||||||
if(USE_UNICODE)
|
if(USE_UNICODE)
|
||||||
add_definitions(-DNANA_UNICODE)
|
add_definitions(-DNANA_UNICODE)
|
||||||
endif()
|
endif(USE_UNICODE)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
add_definitions(-DAPPLE)
|
add_definitions(-DAPPLE)
|
||||||
include_directories(/opt/X11/include/)
|
include_directories(/opt/X11/include/)
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
add_definitions(-Dlinux)
|
add_definitions(-Dlinux)
|
||||||
endif()
|
endif(APPLE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -62,19 +82,10 @@ if(UNIX)
|
|||||||
find_package(Freetype)
|
find_package(Freetype)
|
||||||
if (FREETYPE_FOUND)
|
if (FREETYPE_FOUND)
|
||||||
include_directories( ${FREETYPE_INCLUDE_DIRS})
|
include_directories( ${FREETYPE_INCLUDE_DIRS})
|
||||||
endif()
|
endif(FREETYPE_FOUND)
|
||||||
endif()
|
endif(UNIX)
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
add_definitions(-DWIN32)
|
|
||||||
if(MINGW)
|
|
||||||
add_definitions(-DMINGW)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#Find PNG
|
#Find PNG
|
||||||
option(ENABLE_PNG "Enable the use of PNG")
|
|
||||||
option(LIBPNG_FROM_OS "Use libpng from operating system.")
|
|
||||||
if(ENABLE_PNG)
|
if(ENABLE_PNG)
|
||||||
add_definitions(-DNANA_ENABLE_PNG)
|
add_definitions(-DNANA_ENABLE_PNG)
|
||||||
if(LIBPNG_FROM_OS)
|
if(LIBPNG_FROM_OS)
|
||||||
@ -82,13 +93,11 @@ if(ENABLE_PNG)
|
|||||||
if (PNG_FOUND)
|
if (PNG_FOUND)
|
||||||
include_directories( ${PNG_INCLUDE_DIRS})
|
include_directories( ${PNG_INCLUDE_DIRS})
|
||||||
add_definitions(-DUSE_LIBPNG_FROM_OS)
|
add_definitions(-DUSE_LIBPNG_FROM_OS)
|
||||||
endif()
|
endif(PNG_FOUND)
|
||||||
endif()
|
endif(LIBPNG_FROM_OS)
|
||||||
endif()
|
endif(ENABLE_PNG)
|
||||||
|
|
||||||
#Find JPEG
|
#Find JPEG
|
||||||
option(ENABLE_JPEG "Enable the use of JPEG")
|
|
||||||
option(LIBJPEG_FROM_OS "Use libjpeg from operating system.")
|
|
||||||
if(ENABLE_JPEG)
|
if(ENABLE_JPEG)
|
||||||
add_definitions(-DNANA_ENABLE_JPEG)
|
add_definitions(-DNANA_ENABLE_JPEG)
|
||||||
if(LIBJPEG_FROM_OS)
|
if(LIBJPEG_FROM_OS)
|
||||||
@ -96,11 +105,13 @@ if(ENABLE_JPEG)
|
|||||||
if (JPEG_FOUND)
|
if (JPEG_FOUND)
|
||||||
include_directories( ${JPEG_INCLUDE_DIRS})
|
include_directories( ${JPEG_INCLUDE_DIRS})
|
||||||
add_definitions(-DUSE_LIBJPEG_FROM_OS)
|
add_definitions(-DUSE_LIBJPEG_FROM_OS)
|
||||||
endif()
|
endif(JPEG_FOUND)
|
||||||
endif()
|
endif(LIBJPEG_FROM_OS)
|
||||||
endif()
|
endif(ENABLE_JPEG)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Unicode
|
||||||
if(CMAKE_VERBOSE_PREPROCESSOR)
|
if(CMAKE_VERBOSE_PREPROCESSOR)
|
||||||
add_definitions(-DVERBOSE_PREPROCESSOR)
|
add_definitions(-DVERBOSE_PREPROCESSOR)
|
||||||
endif(CMAKE_VERBOSE_PREPROCESSOR)
|
endif(CMAKE_VERBOSE_PREPROCESSOR)
|
||||||
@ -131,13 +142,16 @@ aux_source_directory(${NANA_SOURCE_DIR}/paint/detail NANA_PAINT_DETAIL_SOURCE)
|
|||||||
aux_source_directory(${NANA_SOURCE_DIR}/system NANA_SYSTEM_SOURCE)
|
aux_source_directory(${NANA_SOURCE_DIR}/system NANA_SYSTEM_SOURCE)
|
||||||
aux_source_directory(${NANA_SOURCE_DIR}/threads NANA_THREADS_SOURCE)
|
aux_source_directory(${NANA_SOURCE_DIR}/threads NANA_THREADS_SOURCE)
|
||||||
|
|
||||||
|
#To show .h files in Visual Studio, add them to the list of sources in add_executable / add_library
|
||||||
|
#and Use SOURCE_GROUP if all your sources are in the same directory
|
||||||
|
|
||||||
add_library(${PROJECT_NAME} ${NANA_SOURCE}
|
add_library(${PROJECT_NAME} ${NANA_SOURCE}
|
||||||
${NANA_DETAIL_SOURCE}
|
${NANA_DETAIL_SOURCE}
|
||||||
${NANA_FILESYSTEM_SOURCE}
|
${NANA_FILESYSTEM_SOURCE}
|
||||||
#if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
${NANA_AUDIO_SOURCE}
|
${NANA_AUDIO_SOURCE}
|
||||||
${NANA_AUDIO_DETAIL_SOURCE}
|
${NANA_AUDIO_DETAIL_SOURCE}
|
||||||
#endif
|
endif (NOT APPLE)
|
||||||
${NANA_GUI_SOURCE}
|
${NANA_GUI_SOURCE}
|
||||||
${NANA_GUI_DETAIL_SOURCE}
|
${NANA_GUI_DETAIL_SOURCE}
|
||||||
${NANA_GUI_WIDGETS_SOURCE}
|
${NANA_GUI_WIDGETS_SOURCE}
|
||||||
@ -147,9 +161,12 @@ add_library(${PROJECT_NAME} ${NANA_SOURCE}
|
|||||||
${NANA_SYSTEM_SOURCE}
|
${NANA_SYSTEM_SOURCE}
|
||||||
${NANA_THREADS_SOURCE})
|
${NANA_THREADS_SOURCE})
|
||||||
|
|
||||||
#if(APPLE)
|
if(APPLE)
|
||||||
target_link_libraries(${PROJECT_NAME} -L/opt/X11/lib/ -lX11 -lXft -lpng -liconv)
|
#Headers: use INCLUDE_DIRECTORIES
|
||||||
#endif()
|
# Libraries: use FIND_LIBRARY and link with the result of it (try to avoid LINK_DIRECTORIES
|
||||||
|
target_link_libraries(${PROJECT_NAME} -L/opt/X11/lib/ -lX11 -lXft -lpng -liconv)
|
||||||
|
|
||||||
|
endif(APPLE)
|
||||||
|
|
||||||
install(TARGETS ${PROJECT_NAME}
|
install(TARGETS ${PROJECT_NAME}
|
||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION lib
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user