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,8 +3,6 @@ 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(
@ -30,16 +28,26 @@ include_directories(
../../../external/jsoncpp/include ../../../external/jsoncpp/include
) )
if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
include_directories( 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,6 +25,7 @@ include_directories(
../../../../external/jsoncpp/include ../../../../external/jsoncpp/include
) )
if (OS_LINUX)
include_directories( include_directories(
${TP_EXTERNAL_RELEASE_DIR}/include ${TP_EXTERNAL_RELEASE_DIR}/include
) )
@ -34,6 +33,17 @@ link_directories(
${TP_EXTERNAL_RELEASE_DIR}/lib ${TP_EXTERNAL_RELEASE_DIR}/lib
${TP_EXTERNAL_RELEASE_DIR}/lib64 ${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,6 +14,8 @@ include_directories(
../../../common/libex/include ../../../common/libex/include
) )
if (OS_LINUX)
set(CMAKE_EXE_LINKER_FLAGS "-export-dynamic")
include_directories( include_directories(
${TP_EXTERNAL_RELEASE_DIR}/include ${TP_EXTERNAL_RELEASE_DIR}/include
) )
@ -21,12 +23,21 @@ link_directories(
${TP_EXTERNAL_RELEASE_DIR}/lib ${TP_EXTERNAL_RELEASE_DIR}/lib
${TP_EXTERNAL_RELEASE_DIR}/lib64 ${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)