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
**/ipch
*.tpr
*.tpd
# for CMake
CMakeFiles
cmake_install.cmake

View File

@ -14,17 +14,16 @@ if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
MESSAGE(STATUS "build on macOS...")
set(OS_MACOS 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")
elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
set(OS_LINUX 1)
set(OS_POSIX 1)
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(TP_EXTERNAL_RELEASE_DIR "${PROJECT_SOURCE_DIR}/external/linux/release")
elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
# MESSAGE(FATAL_ERROR "unsupported platform: Windows")
MESSAGE(FATAL_ERROR "unsupported platform: Windows")
else ()
MESSAGE(FATAL_ERROR "unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif ()

View File

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

View File

@ -3,19 +3,17 @@ cmake_minimum_required(VERSION 3.5)
MESSAGE(STATUS "=======================================================")
MESSAGE(STATUS " tp_core")
MESSAGE(STATUS "=======================================================")
#MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")
#MESSAGE(STATUS "current source directory is ${CMAKE_CURRENT_SOURCE_DIR}")
include(../../../CMakeCfg.txt)
ADD_DEFINITIONS(
-DMG_ENABLE_THREADS
-DMG_DISABLE_HTTP_DIGEST_AUTH
-DMG_DISABLE_MQTT
-DMG_DISABLE_SSI
# -DMG_DISABLE_FILESYSTEM
-DHAVE_CONFIG_H
# -DCS_COMMON_MD5_H_
-DCS_DISABLE_MD5
-DMG_ENABLE_THREADS
-DMG_DISABLE_HTTP_DIGEST_AUTH
-DMG_DISABLE_MQTT
-DMG_DISABLE_SSI
# -DMG_DISABLE_FILESYSTEM
-DHAVE_CONFIG_H
# -DCS_COMMON_MD5_H_
-DCS_DISABLE_MD5
)
aux_source_directory(. DIR_SRCS)
@ -30,16 +28,26 @@ include_directories(
../../../external/jsoncpp/include
)
include_directories(
if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
include_directories(
${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})
if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
target_link_libraries(tp_core ssl crypto mbedx509 mbedtls mbedcrypto dl pthread rt util)
elseif (OS_MACOS)
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 " libtpssh")
MESSAGE(STATUS "=======================================================")
#MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")
#MESSAGE(STATUS "current source directory is ${CMAKE_CURRENT_SOURCE_DIR}")
include(../../../../CMakeCfg.txt)
@ -27,13 +25,25 @@ include_directories(
../../../../external/jsoncpp/include
)
include_directories(
${TP_EXTERNAL_RELEASE_DIR}/include
)
link_directories(
${TP_EXTERNAL_RELEASE_DIR}/lib
${TP_EXTERNAL_RELEASE_DIR}/lib64
)
if (OS_LINUX)
include_directories(
${TP_EXTERNAL_RELEASE_DIR}/include
)
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_library(tpssh SHARED ${DIR_SSH_SRCS})

View File

@ -14,19 +14,30 @@ include_directories(
../../../common/libex/include
)
include_directories(
if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
include_directories(
${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})
if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
target_link_libraries(testssh ssh ssl z crypto dl pthread rt util)
elseif (OS_MACOS)
target_link_libraries(testssh ssh ssl z crypto dl pthread util)