# CMakeLists.txt, generated gencmake.pl, on 2017/08/07 15:23:54 cmake_minimum_required( VERSION 2.8.8 ) # CMakeScripts or use the ones that come by default with CMake. # set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules ${CMAKE_MODULE_PATH}) project( regex ) # The version number. set( regex_MAJOR 3 ) set( regex_MINOR 0 ) set( regex_POINT 0 ) # Allow developer to select is Dynamic or static library built set( LIB_TYPE STATIC ) # set default static option( BUILD_SHARED_LIB "Set ON to build shared Library (DLL)" OFF ) if(CMAKE_COMPILER_IS_GNUCXX) set( WARNING_FLAGS -Wall ) endif(CMAKE_COMPILER_IS_GNUCXX) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set( WARNING_FLAGS "-Wall -Wno-overloaded-virtual" ) endif() if(WIN32 AND MSVC) # turn off various warnings set(WARNING_FLAGS "${WARNING_FLAGS} /wd4996") # C4267: '=': conversion from 'size_t' to 'sopno' # C4244: '=': conversion from '__int64' to 'regoff_t' # foreach(warning 4244 4251 4267 4275 4290 4786 4305) foreach(warning 4244 4267 ) set(WARNING_FLAGS "${WARNING_FLAGS} /wd${warning}") endforeach() set( MSVC_FLAGS "-DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS" ) # if (${MSVC_VERSION} EQUAL 1600) # set( MSVC_LD_FLAGS "/FORCE:MULTIPLE" ) # endif (${MSVC_VERSION} EQUAL 1600) #set( NOMINMAX 1 ) # to distinguish between debug and release libs set( CMAKE_DEBUG_POSTFIX "d" ) else() # items for unix endif() set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} ${MSVC_FLAGS} -D_REENTRANT" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} ${MSVC_FLAGS} -D_REENTRANT" ) set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MSVC_LD_FLAGS}" ) # configuration file, if needed # configure_file( ${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h ) # add_definitions( -DHAVE_CONFIG_H ) # include_directories( ${CMAKE_BINARY_DIR} ) if(BUILD_SHARED_LIB) set(LIB_TYPE SHARED) message(STATUS "*** Building DLL library ${LIB_TYPE}") else() message(STATUS "*** Option BUILD_SHARED_LIB is OFF ${LIB_TYPE}") endif() # Total libs 1, exes 1 ################################################# ##### LIBRARIES 1 ##### ################################################# set(name regex) set(dir .) # ${dir}/engine.c - is included in regexec.c, twice set(${name}_SRCS ${dir}/regcomp.c ${dir}/regerror.c ${dir}/regexec.c ${dir}/regfree.c ) set(${name}_HDRS ${dir}/regex.h ) set(${name}_NOIHDRS ${dir}/cclass.h ${dir}/cname.h ${dir}/regex2.h ${dir}/utils.h ) add_library( ${name} ${${name}_SRCS} ${${name}_HDRS} ${${name}_NOIHDRS} ) list(APPEND add_LIBS ${name}) # deal with install, if any... install( TARGETS ${name} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(FILES ${${name}_HDRS} DESTINATION include) ################################################# ##### EXECUTABLES ??? ##### ################################################# # regex-fork EXECUTABLE from [X:\regex-fork], # have 8 C/C++ sources, 5 headers set(name re-test) set(dir .) set(${name}_SRCS ${dir}/main.c ${dir}/debug.c ${dir}/split.c ) if (MSVC) list(APPEND ${name}_SRCS ${dir}/getopt/getopt.c) list(APPEND ${name}_HDRS ${dir}/getopt/getopt.h) endif () add_executable( ${name} ${${name}_SRCS} ${${name}_HDRS} ) if (add_LIBS) target_link_libraries( ${name} ${add_LIBS} ) endif () if (MSVC) set_target_properties( ${name} PROPERTIES DEBUG_POSTFIX d ) endif () # deal with install, if any... #install( TARGETS ${name} DESTINATION bin ) # eof