SET(CMAKE_SYSTEM_NAME @CMAKE_SYSTEM_NAME@) SET(UNIX @UNIX@) SET(WIN32 @WIN32@) SET(MSVC @MSVC@) SET(CFLAGS "@CMAKE_C_FLAGS_RELWITHDEBINFO@") SET(CXXFLAGS "@CMAKE_CXX_FLAGS_RELWITHDEBINFO@") SET(LDFLAGS "@CMAKE_SHARED_LIBRARY_LINK_FLAGS@") SET(mysqlclient_LIB_DEPENDS "@mysqlclient_LIB_DEPENDS@") SET(mysqlclient_LIB_DEPENDS "@mysqlserver_LIB_DEPENDS@") SET(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") SET(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@") SET(CMAKE_COMPILER_IS_GNUCXX "@CMAKE_COMPILER_IS_GNUCXX@") SET(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@") SET(CMAKE_CXX_COMPILER_ARG1 "@CMAKE_CXX_COMPILER_ARG1@") IF(UNIX) # FIND_PROC and CHECK_PID are used by mysqld_safe IF(CMAKE_SYSTEM_NAME MATCHES "Linux") SET (FIND_PROC "ps wwwp $PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" > /dev/null") ENDIF() IF(NOT FIND_PROC AND CMAKE_SYSTEM_NAME MATCHES "SunOS") SET (FIND_PROC "ps -p $PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" > /dev/null") ENDIF() IF(NOT FIND_PROC) # BSD style EXECUTE_PROCESS(COMMAND ps -uaxww OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result) IF(result MATCHES 0) SET( FIND_PROC "ps -uaxww | grep -v \" grep\" | grep -v mysqld_safe | grep -- "\$MYSQLD\" | grep \" $PID \" > /dev/null") ENDIF() ENDIF() IF(NOT FIND_PROC) # SysV style EXECUTE_PROCESS(COMMAND ps -ef OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result) IF(result MATCHES 0) SET( FIND_PROC "ps -ef | grep -v \" grep\" | grep -v mysqld_safe | grep -- "\$MYSQLD\" | grep \" $PID \" > /dev/null") ENDIF() ENDIF() EXECUTE_PROCESS(COMMAND sh -c "kill -0 $$" OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result2) IF(result3 MATCHES 0) SET(CHECK_PID "kill -0 $PID > /dev/null 2> /dev/null") ELSE() EXECUTE_PROCESS(COMMAND sh -c "kill -s 0 $$" OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result3) IF(result4 MATCHES 0) SET(CHECK_PID "kill -s 0 $PID > /dev/null 2> /dev/null") ELSE() SET(CHECK_PID "kill -s SIGCONT $PID > /dev/null 2> /dev/null") ENDIF() ENDIF() ENDIF(UNIX) set(prefix "$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}") SET(sysconfdir ${prefix}) SET(bindir ${prefix}/bin) SET(libexecdir ${prefix}/bin) SET(scriptdir ${prefix}/bin) SET(datadir ${prefix}/share) SET(pkgdatadir ${prefix}/share) SET(pkgincludedir ${prefix}/include) SET(pkglibdir ${prefix}/lib) SET(pkgplugindir ${prefix}/lib/plugin) SET(localstatedir ${prefix}/data) # some scripts use @TARGET_LINUX@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux") SET(TARGET_LINUX 1) ELSE() SET(TARGET_LINUX 0) ENDIF() # Use cmake variables to inspect dependencies for # mysqlclient library (add -l stuff) SET(CLIENT_LIBS "") SET(LIBS "") FOREACH(lib ${mysqlclient_LIB_DEPENDS}) # Filter out "general", it is not a library, just CMake hint IF(NOT lib STREQUAL "general" AND NOT CLIENT_LIBS MATCHES "-l${lib} ") SET(CLIENT_LIBS "${CLIENT_LIBS}-l${lib} " ) ENDIF() ENDFOREACH() FOREACH(lib ${mysqlserver_LIB_DEPENDS}) IF(NOT lib STREQUAL "general" AND NOT LIBS MATCHES "-l${lib} ") SET(LIBS "${LIBS}-l${lib} " ) ENDIF() ENDFOREACH() IF(MSVC) STRING(REPLACE "-l" "" CLIENT_LIBS "${CLIENT_LIBS}") STRING(REPLACE "-l" "" LIBS "${LIBS}" ) ENDIF() SET(NON_THREADED_LIBS ${CLIENT_LIBS}) IF(WIN32) # On Windows, some .sh and some .pl.in files are configured # The resulting files will have .pl extension (those are perl scripts) # Input files with pl.in extension SET(PLIN_FILES mysql_config mysql_secure_installation) # Input files with .sh extension SET(SH_FILES mysql_convert_table_format mysqld_multi) FOREACH(file ${PLIN_FILES}) CONFIGURE_FILE(${file}.pl.in ${CMAKE_CURRENT_BINARY_DIR}/${file}.pl ESCAPE_QUOTES @ONLY) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}.pl DESTINATION scripts) ENDFOREACH() FOREACH(file ${SH_FILES}) CONFIGURE_FILE(${file}.sh ${CMAKE_CURRENT_BINARY_DIR}/${file}.pl ESCAPE_QUOTES @ONLY) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}.pl DESTINATION scripts) ENDFOREACH() ELSE() # On Unix, most of the files end up in the bin directory SET(BIN_SCRIPTS msql2mysql mysql_config mysql_fix_extensions mysql_setpermission mysql_secure_installation mysql_zap mysqlaccess mysqlbug mysql_convert_table_format mysql_find_rows mysqlhotcopy mysqldumpslow mysqld_multi mysqlaccess mysqlaccess.conf mysql_install_db ) FOREACH(file ${BIN_SCRIPTS}) IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY) ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file} ${CMAKE_CURRENT_BINARY_DIR}/${file} COPYONLY) ELSE() MESSAGE(FATAL_ERROR "Can not find ${file}.sh or ${file} in " "${CMAKE_CURRENT_SOURCE_DIR}" ) ENDIF() FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE FILES "${CMAKE_CURRENT_BINARY_DIR}/${file}") ENDFOREACH() CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysqld_safe.sh ${CMAKE_CURRENT_BINARY_DIR}/mysqld_safe @ONLY) FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE FILES "${CMAKE_CURRENT_BINARY_DIR}/mysqld_safe" ) # For some reason, mysqld_safe needs to be also in scripts directory FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/scripts" TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE FILES "${CMAKE_CURRENT_BINARY_DIR}/mysql_install_db") ENDIF() # Install libgcc as mylibgcc.a IF(CMAKE_COMPILER_IS_GNUCXX) EXECUTE_PROCESS ( COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} ${CMAKE_CXX_FLAGS} --print-libgcc OUTPUT_VARIABLE LIBGCC_LOCATION RESULT_VARIABLE RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) IF(${RESULT} EQUAL 0 AND EXISTS ${LIBGCC_LOCATION}) FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE FILE OPTIONAL FILES "${LIBGCC_LOCATION}") ENDIF() ENDIF()