71 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
########### OS
 | 
						|
# https://blog.kowalczyk.info/article/j/guide-to-predefined-macros-in-c-compilers-gcc-clang-msvc-etc..html
 | 
						|
# http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system
 | 
						|
 | 
						|
if(WIN32)
 | 
						|
    target_compile_definitions(nana PUBLIC WIN32)    # todo: why not simple test for _WIN32 in code??
 | 
						|
    set(CMAKE_DEBUG_POSTFIX "_d")    # ??
 | 
						|
    # Global MSVC definitions. You may prefer the hand-tuned sln and projects from the nana repository.
 | 
						|
    if(MSVC)
 | 
						|
        option(MSVC_USE_MP "Set to ON to build nana with the /MP option (Visual Studio 2005 and above)." ON)
 | 
						|
        option(MSVC_USE_STATIC_RUNTIME "Set to ON to build nana with the /MT(d) option." ON)
 | 
						|
 | 
						|
        # Change the MSVC Compiler flags
 | 
						|
        if(MSVC_USE_MP)
 | 
						|
            target_compile_options(nana PUBLIC "/MP" )
 | 
						|
        endif()
 | 
						|
 | 
						|
        if(MSVC_USE_STATIC_RUNTIME)
 | 
						|
            foreach(flag
 | 
						|
                    CMAKE_C_FLAGS              CMAKE_C_FLAGS_DEBUG             CMAKE_C_FLAGS_RELEASE
 | 
						|
                    CMAKE_C_FLAGS_MINSIZEREL   CMAKE_C_FLAGS_RELWITHDEBINFO
 | 
						|
                    CMAKE_CXX_FLAGS            CMAKE_CXX_FLAGS_DEBUG           CMAKE_CXX_FLAGS_RELEASE
 | 
						|
                    CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
 | 
						|
                if(${flag} MATCHES "/MD")
 | 
						|
                    string(REGEX REPLACE "/MD" "/MT" ${flag} "${${flag}}")
 | 
						|
                endif()
 | 
						|
            endforeach()
 | 
						|
        endif()
 | 
						|
    endif()
 | 
						|
 | 
						|
    if(MINGW)
 | 
						|
        if(NANA_CMAKE_ENABLE_MINGW_STD_THREADS_WITH_MEGANZ)      # deprecated ?????
 | 
						|
            target_compile_definitions(nana PUBLIC STD_THREAD_NOT_SUPPORTED
 | 
						|
                                            PUBLIC NANA_ENABLE_MINGW_STD_THREADS_WITH_MEGANZ  )
 | 
						|
        endif()
 | 
						|
    endif()
 | 
						|
endif()
 | 
						|
 | 
						|
if(APPLE)
 | 
						|
    target_compile_definitions(nana PUBLIC APPLE)      # ??? not added by compilers? use  __APPLE__  ?
 | 
						|
    target_include_directories(nana PUBLIC /opt/X11/include/)
 | 
						|
    target_link_libraries(nana PRIVATE iconv)
 | 
						|
    set(ENABLE_AUDIO OFF)
 | 
						|
endif()
 | 
						|
 | 
						|
if(UNIX)
 | 
						|
 | 
						|
    find_package(X11 REQUIRED)            # X11  - todo test PRIVATE
 | 
						|
    target_link_libraries(nana
 | 
						|
            PUBLIC ${X11_LIBRARIES}
 | 
						|
            PUBLIC ${X11_Xft_LIB}
 | 
						|
            )
 | 
						|
    target_include_directories(nana SYSTEM
 | 
						|
            PUBLIC ${X11_Xft_INCLUDE_PATH}
 | 
						|
            PUBLIC ${X11_INCLUDE_DIR}
 | 
						|
            )
 | 
						|
 | 
						|
    find_package(Freetype)                # Freetype - todo test PRIVATE
 | 
						|
    if (FREETYPE_FOUND)
 | 
						|
        find_package(Fontconfig REQUIRED)
 | 
						|
        target_include_directories(nana SYSTEM
 | 
						|
                PUBLIC ${FREETYPE_INCLUDE_DIRS}
 | 
						|
                PUBLIC ${FONTCONFIG_INCLUDE_DIR}
 | 
						|
                )
 | 
						|
        target_link_libraries(nana
 | 
						|
                PUBLIC ${FREETYPE_LIBRARIES}
 | 
						|
                PUBLIC ${FONTCONFIG_LIBRARIES}
 | 
						|
                )
 | 
						|
    endif(FREETYPE_FOUND)
 | 
						|
endif(UNIX)
 |