#------------------------------------------------------------------- # This file is part of the CMake build system for Scol # # The contents of this file are placed in the public domain. Feel # free to make use of it in any way you like. #------------------------------------------------------------------- ####################################################################### # This file takes care of configuring Scol to build with the settings # given in CMake. It creates the necessary config.h file and will # also prepare package files for pkg-config and CMake. ####################################################################### # static / shared build if (Scol_STATIC) set(Scol_LIB_TYPE STATIC) else() set(Scol_LIB_TYPE SHARED) endif() # Create the pkg-config package files on Unix systems if (UNIX) set(Scol_LIB_SUFFIX "") set(Scol_PLUGIN_PREFIX "") set(Scol_PLUGIN_EXT ".so") string(TOLOWER "${CMAKE_BUILD_TYPE}" Scol_BUILD_TYPE) #if (Scol_BUILD_TYPE STREQUAL "debug") # set(SCOL_LIB_SUFFIX "${Scol_LIB_SUFFIX}_d") #endif () set(Scol_ADDITIONAL_LIBS "") set(Scol_CFLAGS "") set(Scol_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}) configure_file(${Scol_TEMPLATES_DIR}/SCOL.pc.in ${Scol_BINARY_DIR}/pkgconfig/SCOL${Scol_LIB_SUFFIX}.pc @ONLY) install(FILES ${Scol_BINARY_DIR}/pkgconfig/SCOL${Scol_LIB_SUFFIX}.pc DESTINATION lib/pkgconfig) endif () if (MSVC) # Enable intrinsics on MSVC in debug mode # Not actually necessary in release mode since /O2 implies /Oi but can't easily add this per build type? add_definitions(/Oi) endif (MSVC) if (APPLE) set(CMAKE_MACOSX_BUNDLE ON) endif() if (Scol_DEBUG_MEMORY_LEAKS) set(SCOL_DEBUG_MEMORY_LEAKS 1) else () set(SCOL_DEBUG_MEMORY_LEAKS 0) endif () if (ANDROID) string(REPLACE "-g " "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") string(REPLACE "-g " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set(CMAKE_C_FLAGS "-fsigned-char ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "-fsigned-char ${CMAKE_CXX_FLAGS}") set(CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}") set(CMAKE_CXX_FLAGS_DEBUG "-g ${CMAKE_CXX_FLAGS_DEBUG}") set(CMAKE_C_FLAGS_RELEASE "-fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing ${CMAKE_C_FLAGS_RELEASE}") set(CMAKE_CXX_FLAGS_RELEASE "-fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing ${CMAKE_CXX_FLAGS_RELEASE}") set(CMAKE_C_FLAGS_MINSIZEREL "-fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing ${CMAKE_C_FLAGS_MINSIZEREL}") set(CMAKE_CXX_FLAGS_MINSIZEREL "-fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing ${CMAKE_CXX_FLAGS_MINSIZEREL}") set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "-Wl,--strip-all ${CMAKE_SHARED_LINKER_FLAGS}") set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "-Wl,--strip-all ${CMAKE_SHARED_LINKER_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-Wl,--strip-all ${CMAKE_SHARED_LINKER_FLAGS}") endif(ANDROID) # generate scolBuildSettings.h configure_file(${Scol_TEMPLATES_DIR}/scolBuildSettings.h.in ${Scol_BINARY_DIR}/vm/kernel5/include/scolBuildSettings.h @ONLY) if(ANDROID) configure_file(${Scol_TEMPLATES_DIR}/scolBuildSettings.h.in ${CMAKE_SOURCE_DIR}/vm/kernel5/include/scolBuildSettings.h @ONLY) endif() install(FILES ${Scol_BINARY_DIR}/vm/kernel5/include/scolBuildSettings.h DESTINATION include/SCOL)