build on macos.

pull/236/head
Apex Liu 2020-01-15 20:07:34 +08:00
parent b900af6787
commit b4014b5af6
6 changed files with 73 additions and 39 deletions

3
.gitignore vendored
View File

@ -9,6 +9,9 @@
*.aps *.aps
**/ipch **/ipch
*.tpr
*.tpd
# for CMake # for CMake
CMakeFiles CMakeFiles
cmake_install.cmake cmake_install.cmake

View File

@ -14,17 +14,16 @@ if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
MESSAGE(STATUS "build on macOS...") MESSAGE(STATUS "build on macOS...")
set(OS_MACOS 1) set(OS_MACOS 1)
set(OS_POSIX 1) set(OS_POSIX 1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(TP_EXTERNAL_RELEASE_DIR "${PROJECT_SOURCE_DIR}/external/macos/release") set(TP_EXTERNAL_RELEASE_DIR "${PROJECT_SOURCE_DIR}/external/macos/release")
elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
set(OS_LINUX 1) set(OS_LINUX 1)
set(OS_POSIX 1) set(OS_POSIX 1)
MESSAGE(STATUS "build on Linux...") MESSAGE(STATUS "build on Linux...")
# add_subdirectory(server/tp_web/src)
# set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(TP_EXTERNAL_RELEASE_DIR "${PROJECT_SOURCE_DIR}/external/linux/release") set(TP_EXTERNAL_RELEASE_DIR "${PROJECT_SOURCE_DIR}/external/linux/release")
elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
# MESSAGE(FATAL_ERROR "unsupported platform: Windows") MESSAGE(FATAL_ERROR "unsupported platform: Windows")
else () else ()
MESSAGE(FATAL_ERROR "unsupported platform: ${CMAKE_SYSTEM_NAME}") MESSAGE(FATAL_ERROR "unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif () endif ()

View File

@ -540,7 +540,7 @@ class BuilderLinux(BuilderBase):
' -DWITH_EXAMPLES=OFF' \ ' -DWITH_EXAMPLES=OFF' \
' -DWITH_BENCHMARKS=OFF' \ ' -DWITH_BENCHMARKS=OFF' \
' -DWITH_NACL=OFF' \ ' -DWITH_NACL=OFF' \
' ..'.format(path_release=self.PATH_RELEASE) ''.format(path_release=self.PATH_RELEASE)
# ' -DWITH_STATIC_LIB=ON' # ' -DWITH_STATIC_LIB=ON'
@ -743,8 +743,8 @@ class BuilderMacOS(BuilderBase):
os.chdir(old_p) os.chdir(old_p)
def _build_libssh(self, file_name): def _build_libssh(self, file_name):
cc.n('skip build libssh on macOS.') # cc.n('skip build libssh on macOS.')
return # return
if not self._download_libssh(file_name): if not self._download_libssh(file_name):
return return
@ -761,13 +761,16 @@ class BuilderMacOS(BuilderBase):
build_path = os.path.join(self.LIBSSH_PATH_SRC, 'build') build_path = os.path.join(self.LIBSSH_PATH_SRC, 'build')
cmake_define = ' -DCMAKE_INSTALL_PREFIX={path_release}' \ cmake_define = ' -DCMAKE_INSTALL_PREFIX={path_release}' \
' -DOPENSSL_INCLUDE_DIR={path_release}/include' \ ' -DOPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include' \
' -DOPENSSL_LIBRARIES={path_release}/lib' \ ' -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib' \
' -DWITH_GCRYPT=OFF' \
' -DWITH_GEX=OFF' \
' -DWITH_SFTP=ON' \ ' -DWITH_SFTP=ON' \
' -DWITH_SERVER=ON' \ ' -DWITH_SERVER=ON' \
' -DWITH_GSSAPI=OFF' \ ' -DWITH_GSSAPI=OFF' \
' -DWITH_ZLIB=OFF' \ ' -DWITH_ZLIB=ON' \
' -DWITH_PCAP=OFF' \ ' -DWITH_PCAP=OFF' \
' -DBUILD_SHARED_LIBS=OFF' \
' -DUNIT_TESTING=OFF' \ ' -DUNIT_TESTING=OFF' \
' -DWITH_EXAMPLES=OFF' \ ' -DWITH_EXAMPLES=OFF' \
' -DWITH_BENCHMARKS=OFF' \ ' -DWITH_BENCHMARKS=OFF' \

View File

@ -3,19 +3,17 @@ cmake_minimum_required(VERSION 3.5)
MESSAGE(STATUS "=======================================================") MESSAGE(STATUS "=======================================================")
MESSAGE(STATUS " tp_core") MESSAGE(STATUS " tp_core")
MESSAGE(STATUS "=======================================================") MESSAGE(STATUS "=======================================================")
#MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")
#MESSAGE(STATUS "current source directory is ${CMAKE_CURRENT_SOURCE_DIR}")
include(../../../CMakeCfg.txt) include(../../../CMakeCfg.txt)
ADD_DEFINITIONS( ADD_DEFINITIONS(
-DMG_ENABLE_THREADS -DMG_ENABLE_THREADS
-DMG_DISABLE_HTTP_DIGEST_AUTH -DMG_DISABLE_HTTP_DIGEST_AUTH
-DMG_DISABLE_MQTT -DMG_DISABLE_MQTT
-DMG_DISABLE_SSI -DMG_DISABLE_SSI
# -DMG_DISABLE_FILESYSTEM # -DMG_DISABLE_FILESYSTEM
-DHAVE_CONFIG_H -DHAVE_CONFIG_H
# -DCS_COMMON_MD5_H_ # -DCS_COMMON_MD5_H_
-DCS_DISABLE_MD5 -DCS_DISABLE_MD5
) )
aux_source_directory(. DIR_SRCS) aux_source_directory(. DIR_SRCS)
@ -30,16 +28,26 @@ include_directories(
../../../external/jsoncpp/include ../../../external/jsoncpp/include
) )
include_directories( if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
include_directories(
${TP_EXTERNAL_RELEASE_DIR}/include ${TP_EXTERNAL_RELEASE_DIR}/include
) )
link_directories(${TP_EXTERNAL_RELEASE_DIR}/lib) link_directories(${TP_EXTERNAL_RELEASE_DIR}/lib)
elseif (OS_MACOS)
include_directories(
/usr/local/opt/openssl/include
${TP_EXTERNAL_RELEASE_DIR}/include
)
link_directories(
/usr/local/opt/openssl/lib
${TP_EXTERNAL_RELEASE_DIR}/lib
)
endif ()
add_executable(tp_core ${DIR_SRCS}) add_executable(tp_core ${DIR_SRCS})
if (OS_LINUX) if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
target_link_libraries(tp_core ssl crypto mbedx509 mbedtls mbedcrypto dl pthread rt util) target_link_libraries(tp_core ssl crypto mbedx509 mbedtls mbedcrypto dl pthread rt util)
elseif (OS_MACOS) elseif (OS_MACOS)
target_link_libraries(tp_core ssl crypto mbedx509 mbedtls mbedcrypto dl pthread util) target_link_libraries(tp_core ssl crypto mbedx509 mbedtls mbedcrypto dl pthread util)

View File

@ -3,8 +3,6 @@ cmake_minimum_required(VERSION 3.5)
MESSAGE(STATUS "=======================================================") MESSAGE(STATUS "=======================================================")
MESSAGE(STATUS " libtpssh") MESSAGE(STATUS " libtpssh")
MESSAGE(STATUS "=======================================================") MESSAGE(STATUS "=======================================================")
#MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")
#MESSAGE(STATUS "current source directory is ${CMAKE_CURRENT_SOURCE_DIR}")
include(../../../../CMakeCfg.txt) include(../../../../CMakeCfg.txt)
@ -27,13 +25,25 @@ include_directories(
../../../../external/jsoncpp/include ../../../../external/jsoncpp/include
) )
include_directories( if (OS_LINUX)
${TP_EXTERNAL_RELEASE_DIR}/include include_directories(
) ${TP_EXTERNAL_RELEASE_DIR}/include
link_directories( )
${TP_EXTERNAL_RELEASE_DIR}/lib link_directories(
${TP_EXTERNAL_RELEASE_DIR}/lib64 ${TP_EXTERNAL_RELEASE_DIR}/lib
) ${TP_EXTERNAL_RELEASE_DIR}/lib64
)
elseif (OS_MACOS)
include_directories(
/usr/local/opt/openssl/include
${TP_EXTERNAL_RELEASE_DIR}/include
)
link_directories(
/usr/local/opt/openssl/lib
${TP_EXTERNAL_RELEASE_DIR}/lib
)
endif ()
add_library(tpssh SHARED ${DIR_SSH_SRCS}) add_library(tpssh SHARED ${DIR_SSH_SRCS})

View File

@ -14,19 +14,30 @@ include_directories(
../../../common/libex/include ../../../common/libex/include
) )
include_directories( if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
include_directories(
${TP_EXTERNAL_RELEASE_DIR}/include ${TP_EXTERNAL_RELEASE_DIR}/include
)
link_directories(
${TP_EXTERNAL_RELEASE_DIR}/lib
${TP_EXTERNAL_RELEASE_DIR}/lib64
) )
link_directories(
${TP_EXTERNAL_RELEASE_DIR}/lib
${TP_EXTERNAL_RELEASE_DIR}/lib64
)
elseif (OS_MACOS)
include_directories(
/usr/local/opt/openssl/include
${TP_EXTERNAL_RELEASE_DIR}/include
)
link_directories(
/usr/local/opt/openssl/lib
${TP_EXTERNAL_RELEASE_DIR}/lib
)
endif ()
add_executable(testssh ${DIR_SRCS}) add_executable(testssh ${DIR_SRCS})
if (OS_LINUX) if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
target_link_libraries(testssh ssh ssl z crypto dl pthread rt util) target_link_libraries(testssh ssh ssl z crypto dl pthread rt util)
elseif (OS_MACOS) elseif (OS_MACOS)
target_link_libraries(testssh ssh ssl z crypto dl pthread util) target_link_libraries(testssh ssh ssl z crypto dl pthread util)