mirror of
https://github.com/debauchee/barrier.git
synced 2026-02-12 22:55:53 +08:00
Compare commits
283 Commits
1.11.0-sta
...
v2.3.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58d8f020dc | ||
|
|
910f1f3ac1 | ||
|
|
f7b7c55b53 | ||
|
|
c6ff6a6de6 | ||
|
|
0ddd38ece1 | ||
|
|
3e3e183e75 | ||
|
|
6dc59d14a3 | ||
|
|
f399c8c642 | ||
|
|
ea0717b5f5 | ||
|
|
4e83ea7f9a | ||
|
|
f23a2ecec3 | ||
|
|
30bc1948c6 | ||
|
|
bad0373bbb | ||
|
|
7a2c3f7741 | ||
|
|
e2f59c7475 | ||
|
|
49210e1ea4 | ||
|
|
1c5a95f810 | ||
|
|
1c398dcd66 | ||
|
|
40ee389296 | ||
|
|
af444a6932 | ||
|
|
8e8b38b493 | ||
|
|
8e1a5921f6 | ||
|
|
1e118ee8e8 | ||
|
|
0f5cdecf51 | ||
|
|
6c19a87f63 | ||
|
|
b3374a07ed | ||
|
|
b09a3985d0 | ||
|
|
40f94c6477 | ||
|
|
0be33c3032 | ||
|
|
500a82824f | ||
|
|
cd8176e69f | ||
|
|
ae8ef7f4f2 | ||
|
|
6074f9b648 | ||
|
|
a3804c4915 | ||
|
|
e4392b51b4 | ||
|
|
d362f7ad52 | ||
|
|
9b5e2c2da3 | ||
|
|
e518694026 | ||
|
|
a82b845e07 | ||
|
|
ab40f52f4b | ||
|
|
84fcbea34b | ||
|
|
2f86911c87 | ||
|
|
18ac0fe4b5 | ||
|
|
c54424794f | ||
|
|
929a8e133d | ||
|
|
854a6b2a86 | ||
|
|
d85a47ad80 | ||
|
|
35e6693d6d | ||
|
|
cdf37376f5 | ||
|
|
6a70ef9efb | ||
|
|
4afa31ac54 | ||
|
|
acbe6d371f | ||
|
|
5d031588b2 | ||
|
|
0af43a2488 | ||
|
|
3e6095fc34 | ||
|
|
47aac5081f | ||
|
|
acca0d7f6f | ||
|
|
75db3a64ca | ||
|
|
15ddd868d4 | ||
|
|
5621846854 | ||
|
|
a90b1bdd34 | ||
|
|
b8ca2d0381 | ||
|
|
fac5610b44 | ||
|
|
bf1fd35237 | ||
|
|
783fbbd84d | ||
|
|
24b3ee547c | ||
|
|
41f5ef2e09 | ||
|
|
726f5e2b53 | ||
|
|
a92e9d90f4 | ||
|
|
79c08baf43 | ||
|
|
0a56cdbca0 | ||
|
|
4dedd88ab2 | ||
|
|
b6861a7d3c | ||
|
|
c806a5137a | ||
|
|
cb1d116cce | ||
|
|
c38c6bcaa2 | ||
|
|
4afe5ddf87 | ||
|
|
943b9a8a0a | ||
|
|
730c065ee7 | ||
|
|
94f8336af5 | ||
|
|
03f9009d10 | ||
|
|
3d835ea4aa | ||
|
|
1b99390c96 | ||
|
|
d4a2a055cc | ||
|
|
5f71b47b5a | ||
|
|
ea3e20ade1 | ||
|
|
14a7ca0848 | ||
|
|
51118014b1 | ||
|
|
2c32270d49 | ||
|
|
624a718f2d | ||
|
|
ce3e8243a9 | ||
|
|
be45440e84 | ||
|
|
65172ebd60 | ||
|
|
b8fa610f8f | ||
|
|
ab887a4e90 | ||
|
|
a58cdf625e | ||
|
|
0eeb4ce240 | ||
|
|
53ebc47ace | ||
|
|
f203a7f49e | ||
|
|
e65ea3c545 | ||
| 3794767459 | |||
| b2aac6719f | |||
| 075d4f4758 | |||
| c63dd6f4f1 | |||
| 9e2fbe269d | |||
|
|
7a0bc3abb7 | ||
|
|
5916d40053 | ||
|
|
af8bbf2674 | ||
| a381347233 | |||
| 73c13ab023 | |||
|
|
443e656be2 | ||
|
|
87820d9387 | ||
|
|
c7c14f02dd | ||
| 5498836b6f | |||
|
|
cc69299ea3 | ||
|
|
ccfa11ca7b | ||
|
|
b28442ee1b | ||
|
|
4806441cb2 | ||
|
|
55c74e9075 | ||
|
|
4c0690dd96 | ||
|
|
af789958f0 | ||
|
|
5467b90982 | ||
|
|
f928c81afc | ||
|
|
39ccc4cbe6 | ||
| 2ddc81d927 | |||
| dc5dc25de7 | |||
|
|
53ee9c7803 | ||
| 1f3a91e74e | |||
|
|
99188fe24b | ||
| a956cad0da | |||
| e88bc97e63 | |||
|
|
f857354535 | ||
|
|
b570e57591 | ||
|
|
76c39aaf4e | ||
|
|
a645e9a296 | ||
| 773a0081e3 | |||
| 8b69f9fe03 | |||
| 0b2dfd80e2 | |||
| c7569f8af7 | |||
|
|
b8ad9b8aba | ||
| 9ab77545ee | |||
| f4301a7618 | |||
| f299558cdf | |||
| 7fd6711829 | |||
| b43581c2f5 | |||
| bd4c214c39 | |||
| 642eb33446 | |||
|
|
0b5ca57b9c | ||
| a7fb1b56f6 | |||
| 5e19820425 | |||
| 9e7792e2ae | |||
| 42a8f69050 | |||
| 1734e6d7f6 | |||
| 6c4199b11a | |||
| 767188799e | |||
| e6d0f40a36 | |||
| 129e61a33a | |||
| 4c04f39685 | |||
| 131a19d478 | |||
| 6c5acdd552 | |||
| d81054ab6e | |||
| 1be86a9248 | |||
| ea025f5958 | |||
| 6e5b340bcc | |||
| 451bd72b30 | |||
| c16fd089f6 | |||
| 96627f4f07 | |||
| c5e70af09a | |||
| 72cc7e3d89 | |||
| fe818a4955 | |||
| ecfa7d7d1c | |||
|
|
9a2d61cbb5 | ||
| 626aa9a3e8 | |||
| 12ed71250a | |||
| d75bdb8ec0 | |||
| 63a7936e9f | |||
| 3389a980ea | |||
| a600801319 | |||
| bac2999d3e | |||
| 921a40c684 | |||
| ea1c563647 | |||
| 51abdc281d | |||
| b9a59c014f | |||
| ed05dc2b2e | |||
| 24987e0694 | |||
| b4604b0921 | |||
| 3edbc00397 | |||
| e396f8d55e | |||
| 5362dbc297 | |||
| 5b31036cdc | |||
| 625253a7e8 | |||
| c605cbdbcc | |||
| 116a133902 | |||
| e6a3a124ee | |||
| 786d513379 | |||
| 4da5c29e5f | |||
| db1e05ff08 | |||
| 315f4c05ca | |||
| c351d450ae | |||
| b55fe3237a | |||
| 2a4382bac9 | |||
| c1827bde51 | |||
|
|
65b9d795cf | ||
| 1648c1d51a | |||
| 916b085474 | |||
| b994c94a90 | |||
| 60d121aed3 | |||
| 15c83eca48 | |||
| 0f42f82439 | |||
| b36a91a363 | |||
| dc15dc6081 | |||
| cfe8719982 | |||
| 87ff075c15 | |||
| ec1d68912d | |||
| cfc13f1f04 | |||
| 45805bbdcb | |||
| 06d5080b42 | |||
| 0e5ed7a305 | |||
| be0fab1775 | |||
| a3ec43999f | |||
| d169555b28 | |||
| b1be8227d2 | |||
| 30304255ea | |||
| a71779647d | |||
| 4571f4cc6e | |||
| 07dad10251 | |||
| 28cb82bcb0 | |||
| cebe7873a4 | |||
| 3b20310deb | |||
| f5b5258f4a | |||
| a8d0dfdacc | |||
| 71a20eedec | |||
| 8073db2247 | |||
| 6cf4f14dec | |||
| f07070f7f9 | |||
| 5bd7e6bfe8 | |||
| f30fe8775c | |||
| 3023f9b469 | |||
| 2ffd92accc | |||
|
|
649b43c3cc | ||
| d5544dc6d1 | |||
| 541fb2afc5 | |||
| e93b203b87 | |||
| 6cb65ebf05 | |||
| df129f139b | |||
| faec8a2f84 | |||
| b64512d65f | |||
| 1effd7bc0b | |||
| 531ced363c | |||
| edfc7e9bbc | |||
| dea4359cce | |||
| b3298ad799 | |||
| eb025871c4 | |||
| 830f6acbef | |||
| d9530bf7aa | |||
| d8237238b4 | |||
| b77eec1f17 | |||
| 9240cc12df | |||
| ccb02372bf | |||
| cda6933f10 | |||
| c68d355ce5 | |||
| 8bdd530d7d | |||
| 5af4b13611 | |||
| 0f2063b67f | |||
| ecf4ebf50e | |||
| 31a64731c1 | |||
| dbfb04a6ec | |||
| ce8c65f8f9 | |||
| 8fb904285b | |||
| 33b81742b5 | |||
| da37ccdf87 | |||
| 5a0465eb36 | |||
| 0bb94da72d | |||
| 0929086428 | |||
| 99b16334b5 | |||
| 2169eb679b | |||
| f12bfdfedc | |||
|
|
5a1c217b54 | ||
|
|
49b607a729 | ||
|
|
ff0525254d | ||
|
|
3b19884fd4 | ||
|
|
bbfcc5cbb3 | ||
|
|
3d245c7255 |
12
.github/ISSUE_TEMPLATE.md
vendored
12
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,15 +1,16 @@
|
||||
### Operating Systems ###
|
||||
|
||||
Server: microOS Tiara
|
||||
|
||||
Client: Applesoft Windy OS 10
|
||||
|
||||
**READ ME, DELETE ME**: On Windows, hold the Windows key and press 'r', type 'winver' and hit return to get your OS version. On Mac, hit the Apple menu (top left of the screen) and check 'About this Mac'. Linux users... you know what you're using ;)
|
||||
|
||||
### Synergy Version ###
|
||||
### Barrier Version ###
|
||||
|
||||
1.8.π
|
||||
1.9.π
|
||||
|
||||
**READ ME, DELETE ME**: Go to the 'Help' (on Windows) or 'Synergy' (on macOS) menu and then 'About Synergy' to check your version. Verify that you are using the same version across all of your machines, and that your issue still occurs with the latest release available at https://symless.com/account/login
|
||||
**READ ME, DELETE ME**: Go to the 'Help' (on Windows) or 'Barrier' (on macOS) menu and then 'About Barrier' to check your version. Verify that you are using the same version across all of your machines, and that your issue still occurs with the latest release available at https://github.com/debauchee/barrier/
|
||||
|
||||
### Steps to reproduce bug ###
|
||||
|
||||
@@ -19,14 +20,11 @@ Client: Applesoft Windy OS 10
|
||||
2. Type things.
|
||||
3. Bug occurs.
|
||||
4. ...
|
||||
5. Profit?
|
||||
|
||||
### Other info ###
|
||||
|
||||
* When did the problem start to occur? When I...
|
||||
* Is there a way to work around it? No/Yes, you can...
|
||||
* Does this bug prevent you from using Synergy entirely? Yes/No
|
||||
|
||||
Please follow the link below to send us logs from both your server and client sides if it's appropriate. https://github.com/symless/synergy/wiki/Sending-logs
|
||||
* Does this bug prevent you from using Barrier entirely? Yes/No
|
||||
|
||||
Put anything else you can think of here.
|
||||
|
||||
14
.gitignore
vendored
14
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
build_env.*
|
||||
config.h
|
||||
.DS_Store
|
||||
*.pyc
|
||||
@@ -18,4 +19,15 @@ config.h
|
||||
src/gui/gui.pro.user*
|
||||
src/gui/.qmake.stash
|
||||
src/gui/.rnd
|
||||
src/setup/win32/synergy.suo
|
||||
src/setup/win32/barrier.suo
|
||||
Makefile
|
||||
*.cmake
|
||||
**/CMakeFiles/
|
||||
CMakeCache.txt
|
||||
/rpm
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# VS Code Directory
|
||||
.vscode/
|
||||
# Transient in-project-directory dependencies
|
||||
/deps/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Synergy build parameters
|
||||
# Barrier build parameters
|
||||
#
|
||||
SYNERGY_VERSION_MAJOR = 1
|
||||
SYNERGY_VERSION_MINOR = 9
|
||||
SYNERGY_VERSION_PATCH = 0
|
||||
SYNERGY_VERSION_STAGE = snapshot
|
||||
BARRIER_VERSION_MAJOR = 2
|
||||
BARRIER_VERSION_MINOR = 3
|
||||
BARRIER_VERSION_PATCH = 1
|
||||
BARRIER_VERSION_STAGE = snapshot
|
||||
|
||||
120
CMakeLists.txt
120
CMakeLists.txt
@@ -1,4 +1,5 @@
|
||||
# Synergy -- mouse and keyboard sharing utility
|
||||
# Barrier -- mouse and keyboard sharing utility
|
||||
# Copyright (C) 2018 Debauchee Open Source Group
|
||||
# Copyright (C) 2012-2016 Symless Ltd.
|
||||
# Copyright (C) 2009 Nick Bolton
|
||||
#
|
||||
@@ -15,12 +16,12 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
cmake_minimum_required (VERSION 3.4)
|
||||
project (synergy C CXX)
|
||||
project (barrier C CXX)
|
||||
|
||||
option (SYNERGY_BUILD_LEGACY_GUI "Build the legacy GUI" ON)
|
||||
option (SYNERGY_BUILD_LEGACY_SERVICE "Build the legacy service (synergyd)" ON)
|
||||
option (SYNERGY_BUILD_LEGACY_INSTALLER "Build the legacy installer" ON)
|
||||
option (BARRIER_BUILD_GUI "Build the GUI" ON)
|
||||
option (BARRIER_BUILD_INSTALLER "Build the installer" ON)
|
||||
|
||||
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
set (CMAKE_CXX_EXTENSIONS OFF)
|
||||
set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
@@ -31,10 +32,8 @@ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
add_definitions (-DNDEBUG)
|
||||
endif()
|
||||
|
||||
#
|
||||
# Synergy version
|
||||
#
|
||||
include (cmake/Version.cmake)
|
||||
include (cmake/Package.cmake)
|
||||
|
||||
# TODO: Find out why we need these, and remove them
|
||||
if (COMMAND cmake_policy)
|
||||
@@ -44,9 +43,9 @@ endif()
|
||||
|
||||
# Add headers to source list
|
||||
if (${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
|
||||
set (SYNERGY_ADD_HEADERS FALSE)
|
||||
set (BARRIER_ADD_HEADERS FALSE)
|
||||
else()
|
||||
set (SYNERGY_ADD_HEADERS TRUE)
|
||||
set (BARRIER_ADD_HEADERS TRUE)
|
||||
endif()
|
||||
|
||||
set (libs)
|
||||
@@ -65,6 +64,7 @@ if (UNIX)
|
||||
include (CheckIncludeFileCXX)
|
||||
include (CheckSymbolExists)
|
||||
include (CheckCSourceCompiles)
|
||||
include (FindPkgConfig)
|
||||
|
||||
check_include_file_cxx (istream HAVE_ISTREAM)
|
||||
check_include_file_cxx (ostream HAVE_OSTREAM)
|
||||
@@ -133,7 +133,9 @@ if (UNIX)
|
||||
# curl is used on both Linux and Mac
|
||||
find_package (CURL)
|
||||
if (CURL_FOUND)
|
||||
list (APPEND libs curl)
|
||||
include_directories(${CURL_INCLUDE_DIRS})
|
||||
list (APPEND libs ${CURL_LIBRARIES})
|
||||
|
||||
else()
|
||||
message (FATAL_ERROR "Missing library: curl")
|
||||
endif()
|
||||
@@ -156,9 +158,20 @@ if (UNIX)
|
||||
)
|
||||
|
||||
else() # not-apple
|
||||
# FreeBSD uses /usr/local for anything not part of base
|
||||
# Also package avahi-libdns puts dns_sd.h a bit deeper
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||
set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};/usr/local/include;/usr/local/include/avahi-compat-libdns_sd")
|
||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -L/usr/local/lib")
|
||||
include_directories("/usr/local/include" "/usr/local/include/avahi-compat-libdns_sd")
|
||||
link_directories("/usr/local/lib")
|
||||
endif()
|
||||
|
||||
# add include dir for bsd (posix uses /usr/include/)
|
||||
set (CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/local/include")
|
||||
if (${PKG_CONFIG_FOUND})
|
||||
pkg_check_modules (AVAHI_COMPAT REQUIRED avahi-compat-libdns_sd)
|
||||
include_directories (BEFORE SYSTEM ${AVAHI_COMPAT_INCLUDE_DIRS})
|
||||
set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${AVAHI_COMPAT_INCLUDE_DIRS}")
|
||||
endif ()
|
||||
|
||||
set (XKBlib "X11/Xlib.h;X11/XKBlib.h")
|
||||
set (CMAKE_EXTRA_INCLUDE_FILES "${XKBlib};X11/extensions/Xrandr.h")
|
||||
@@ -173,6 +186,7 @@ if (UNIX)
|
||||
check_include_files ("X11/extensions/XTest.h" HAVE_X11_EXTENSIONS_XTEST_H)
|
||||
check_include_files ("${XKBlib}" HAVE_X11_XKBLIB_H)
|
||||
check_include_files ("X11/extensions/XInput2.h" HAVE_XI2)
|
||||
check_include_files ("dns_sd.h" HAVE_DNSSD)
|
||||
|
||||
if (HAVE_X11_EXTENSIONS_DPMS_H)
|
||||
# Assume that function prototypes declared, when include exists.
|
||||
@@ -183,6 +197,10 @@ if (UNIX)
|
||||
message (FATAL_ERROR "Missing header: " ${XKBlib})
|
||||
endif()
|
||||
|
||||
if (BARRIER_BUILD_GUI AND NOT HAVE_DNSSD)
|
||||
message (FATAL_ERROR "Missing header: dns_sd.h")
|
||||
endif()
|
||||
|
||||
check_library_exists ("SM;ICE" IceConnectionNumber "" HAVE_ICE)
|
||||
check_library_exists ("Xext;X11" DPMSQueryExtension "" HAVE_Xext)
|
||||
check_library_exists ("Xtst;Xext;X11" XTestQueryExtension "" HAVE_Xtst)
|
||||
@@ -201,7 +219,7 @@ if (UNIX)
|
||||
if (HAVE_Xtst)
|
||||
|
||||
# Xtxt depends on X11.
|
||||
set (HAVE_X11)
|
||||
set (HAVE_X11 1)
|
||||
list (APPEND libs Xtst X11)
|
||||
|
||||
else()
|
||||
@@ -272,7 +290,7 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
/DWIN32
|
||||
/D_WINDOWS
|
||||
/D_CRT_SECURE_NO_WARNINGS
|
||||
/DSYNERGY_VERSION=\"${SYNERGY_VERSION}\"
|
||||
/DBARRIER_VERSION=\"${BARRIER_VERSION}\"
|
||||
/D_XKEYCHECK_H
|
||||
)
|
||||
endif()
|
||||
@@ -294,17 +312,41 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
${OPENSSL_ROOT}/lib/ssleay32.lib
|
||||
)
|
||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set (OPENSSL_ROOT /usr/local/opt/openssl)
|
||||
find_program(BREW_PROGRAM "brew")
|
||||
find_program(PORT_PROGRAM "port")
|
||||
|
||||
if (IS_DIRECTORY /opt/local AND PORT_PROGRAM)
|
||||
# macports
|
||||
set (OPENSSL_ROOT /opt/local)
|
||||
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libssl.a
|
||||
${OPENSSL_ROOT}/lib/libcrypto.a
|
||||
z
|
||||
)
|
||||
elseif (IS_DIRECTORY /usr/local/opt/openssl AND BREW_PROGRAM)
|
||||
# brew
|
||||
set (OPENSSL_ROOT /usr/local/opt/openssl)
|
||||
|
||||
include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
|
||||
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libssl.a
|
||||
${OPENSSL_ROOT}/lib/libcrypto.a
|
||||
)
|
||||
endif()
|
||||
|
||||
include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libssl.a
|
||||
${OPENSSL_ROOT}/lib/libcrypto.a
|
||||
)
|
||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
set (OPENSSL_LIBS ssl crypto)
|
||||
else()
|
||||
message (FATAL_ERROR "Couldn't find OpenSSL")
|
||||
find_library (lib_ssl ssl)
|
||||
find_library (lib_crypto crypto)
|
||||
if (NOT lib_ssl)
|
||||
message(FATAL_ERROR "openssl library not found")
|
||||
elseif (NOT lib_crypto)
|
||||
message(FATAL_ERROR "crypto library not found")
|
||||
endif()
|
||||
set (OPENSSL_LIBS ${lib_ssl} ${lib_crypto})
|
||||
endif()
|
||||
|
||||
#
|
||||
@@ -337,26 +379,36 @@ macro (configure_files srcDir destDir)
|
||||
endforeach (templateFile)
|
||||
endmacro (configure_files)
|
||||
|
||||
if (${SYNERGY_BUILD_LEGACY_INSTALLER})
|
||||
if (${BARRIER_BUILD_INSTALLER})
|
||||
#
|
||||
# macOS app Bundle
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set (CMAKE_INSTALL_RPATH "@loader_path/../Libraries;@loader_path/../Frameworks")
|
||||
set (SYNERGY_BUNDLE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dist/macos/bundle)
|
||||
set (SYNERGY_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle)
|
||||
set (SYNERGY_BUNDLE_APP_DIR ${SYNERGY_BUNDLE_DIR}/Synergy.app)
|
||||
set (SYNERGY_BUNDLE_BINARY_DIR ${SYNERGY_BUNDLE_APP_DIR}/Contents/MacOS)
|
||||
set (BARRIER_BUNDLE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dist/macos/bundle)
|
||||
set (BARRIER_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle)
|
||||
set (BARRIER_BUNDLE_APP_DIR ${BARRIER_BUNDLE_DIR}/Barrier.app)
|
||||
set (BARRIER_BUNDLE_BINARY_DIR ${BARRIER_BUNDLE_APP_DIR}/Contents/MacOS)
|
||||
|
||||
configure_files (${SYNERGY_BUNDLE_SOURCE_DIR} ${SYNERGY_BUNDLE_DIR})
|
||||
configure_files (${BARRIER_BUNDLE_SOURCE_DIR} ${BARRIER_BUNDLE_DIR})
|
||||
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
add_custom_target(Barrier_dmg ALL
|
||||
bash build_installer.sh
|
||||
DEPENDS barrier barriers barrierc
|
||||
WORKING_DIRECTORY ${BARRIER_BUNDLE_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#
|
||||
# Windows installer
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
message (STATUS "Configuring the v1 installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer)
|
||||
set (BARRIER_WIX_VERSION "${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}")
|
||||
message (STATUS "Configuring the wix installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer-wix)
|
||||
message (STATUS "Configuring the inno installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/inno ${CMAKE_BINARY_DIR}/installer-inno)
|
||||
endif()
|
||||
|
||||
#
|
||||
@@ -364,15 +416,15 @@ endif()
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/rpm ${CMAKE_BINARY_DIR}/rpm)
|
||||
install(FILES res/synergy.svg DESTINATION share/icons/hicolor/scalable/apps)
|
||||
install(FILES res/barrier.svg DESTINATION share/icons/hicolor/scalable/apps)
|
||||
if("${VERSION_MAJOR}" STREQUAL "2")
|
||||
install(FILES res/synergy2.desktop DESTINATION share/applications)
|
||||
install(FILES res/barrier2.desktop DESTINATION share/applications)
|
||||
else()
|
||||
install(FILES res/synergy.desktop DESTINATION share/applications)
|
||||
install(FILES res/barrier.desktop DESTINATION share/applications)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
else()
|
||||
message (STATUS "NOT configuring the v1 installer")
|
||||
message (STATUS "NOT configuring the installer")
|
||||
endif()
|
||||
add_subdirectory (src)
|
||||
|
||||
1
LICENSE
1
LICENSE
@@ -1,3 +1,4 @@
|
||||
Copyright (C) 2018 Debauchee Open Source Group
|
||||
Copyright (C) 2012-2016 Symless Ltd.
|
||||
Copyright (C) 2008-2014 Nick Bolton
|
||||
Copyright (C) 2002-2014 Chris Schoeneman
|
||||
|
||||
62
README.md
Normal file
62
README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Barrier
|
||||
|
||||
Eliminate the barrier between your machines.
|
||||
Find [releases here](https://github.com/debauchee/barrier/releases).
|
||||
|
||||
### Contact info:
|
||||
|
||||
- `#barrier` on freenode
|
||||
|
||||
#### CI Build Status
|
||||
|
||||
Master branch overall build status: [](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
|
||||
* Linux Build Status: [](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
|
||||
* Mac Build Status: [](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
|
||||
* Windows Debug Build Status: [](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
|
||||
* Windows Release Build Status: [](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
|
||||
|
||||
Our CI Builds are provided by Microsoft Azure Pipelines.
|
||||
|
||||
### What is it?
|
||||
|
||||
Barrier is KVM software forked from Symless's synergy 1.9 codebase. Synergy was a commercialized reimplementation of the original CosmoSynergy written by Chris Schoeneman.
|
||||
|
||||
### What's different?
|
||||
|
||||
Whereas synergy has moved beyond its goals from the 1.x era, Barrier aims to maintain that simplicity. Barrier will let you use your keyboard and mouse from machine A to control machine B (or more). It's that simple.
|
||||
|
||||
### Project goals
|
||||
|
||||
Hassle-free reliability. We are users, too. Barrier was created so that we could solve the issues we had with synergy and then share these fixes with other users.
|
||||
|
||||
Compatibility. We use more than one operating system and you probably do, too. Windows, OSX, Linux, FreeBSD... Barrier should "just work". We will also have our eye on Wayland when the time comes.
|
||||
|
||||
Communication. Everything we do is in the open. Our issue tracker will let you see if others are having the same problem you're having and will allow you to add additional information. You will also be able to see when progress is made and how the issue gets resolved.
|
||||
|
||||
### Contact & support
|
||||
|
||||
Please be aware that the *only* way to draw our attention to a bug is to create a new PR in the issue tracker. Write a clear, concise, detailed report and you will get a clear, concise, detailed response. Priority is always given to issues that affect a wider range of users.
|
||||
|
||||
For short and simple questions or to just say hello find us on the Freenode IRC network in the #barrier channel.
|
||||
|
||||
### Contributions
|
||||
|
||||
At this time we are looking for developers to help fix the issues found in the issue tracker. Submit pull requests once you've polished up your patch and we'll review and possibly merge it.
|
||||
|
||||
### FAQ
|
||||
|
||||
Q: Does drag and drop work on linux?
|
||||
|
||||
A: No
|
||||
|
||||
Q: What OSes are supported?
|
||||
|
||||
A:
|
||||
- Windows 7, 8, 8.1, and 10
|
||||
- MacOS/OS X
|
||||
- Linux
|
||||
- FreeBSD
|
||||
|
||||
Q: Are 32-bit versions of Windows supported?
|
||||
|
||||
A: No
|
||||
1
_config.yml
Normal file
1
_config.yml
Normal file
@@ -0,0 +1 @@
|
||||
theme: jekyll-theme-slate
|
||||
97
azure-pipelines.yml
Normal file
97
azure-pipelines.yml
Normal file
@@ -0,0 +1,97 @@
|
||||
trigger:
|
||||
tags:
|
||||
include:
|
||||
- '*'
|
||||
branches:
|
||||
include:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
- job: WinBuild
|
||||
displayName: Windows Build
|
||||
pool:
|
||||
vmImage: 'vs2017-win2016'
|
||||
strategy:
|
||||
matrix:
|
||||
Debug:
|
||||
CI_ENV_BUILD_TYPE: Debug
|
||||
Release with Release Installer:
|
||||
CI_ENV_BUILD_TYPE: Release
|
||||
steps:
|
||||
# Gather Dependencies
|
||||
- task: PowerShell@2
|
||||
displayName: Download Bonjour SDK-like
|
||||
inputs:
|
||||
filePath: azure-pipelines/download_install_bonjour_sdk_like.ps1
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Selecting Python Installer for QLI Installer
|
||||
inputs:
|
||||
versionSpec: '3.7'
|
||||
- task: PowerShell@2
|
||||
displayName: Installing QT
|
||||
condition: ne(variables['CacheRestored'], 'true')
|
||||
inputs:
|
||||
filePath: azure-pipelines/download_install_qt.ps1
|
||||
# Build time!
|
||||
- powershell: Copy-Item azure-pipelines\build_env_tmpl.bat build_env.bat
|
||||
displayName: Layering Azure Pipeline's build_env.bat
|
||||
- script: |
|
||||
call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\Tools\\vsdevcmd" -arch=x64 && clean_build.bat
|
||||
displayName: Clean Build
|
||||
- task: ArchiveFiles@2
|
||||
displayName: Archive Completed Build Directory
|
||||
inputs:
|
||||
rootFolderOrFile: build\bin\$(CI_ENV_BUILD_TYPE)\
|
||||
includeRootFolder: true
|
||||
archiveFile: $(Build.ArtifactStagingDirectory)\$(CI_ENV_BUILD_TYPE).zip
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Completed Build Directory Archive Build Artifact
|
||||
inputs:
|
||||
pathtoPublish: $(Build.ArtifactStagingDirectory)\$(CI_ENV_BUILD_TYPE).zip
|
||||
artifactName: Windows $(CI_ENV_BUILD_TYPE)
|
||||
- script: choco install innosetup --version 5.6.1.20190126 --allow-downgrade
|
||||
displayName: Ensure desired version of Inno Setup is installed.
|
||||
condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release')
|
||||
- script: build_installer.bat
|
||||
displayName: Build Installer
|
||||
condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release')
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Release Installer
|
||||
condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release')
|
||||
inputs:
|
||||
pathtoPublish: build\installer-inno\bin
|
||||
artifactName: Windows Release Installer
|
||||
|
||||
- job: LinuxBuild
|
||||
displayName: Linux Build
|
||||
pool:
|
||||
vmImage: 'ubuntu-16.04'
|
||||
steps:
|
||||
- script: sudo apt-get update -y
|
||||
- script: sudo apt-get install -y libxtst-dev qtdeclarative5-dev libavahi-compat-libdnssd-dev libcurl4-openssl-dev
|
||||
displayName: Install Dependencies
|
||||
- script: sh -x ./clean_build.sh
|
||||
displayName: Clean Build
|
||||
|
||||
- job: MacBuild
|
||||
displayName: Mac Build
|
||||
pool:
|
||||
vmImage: 'macOS-10.14'
|
||||
strategy:
|
||||
matrix:
|
||||
Release:
|
||||
B_BUILD_TYPE: Release
|
||||
BARRIER_VERSION_STAGE: Release
|
||||
steps:
|
||||
- script: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/aac86fc018c48d7b6f23a2e7535276899774567a/Formula/qt.rb
|
||||
displayName: Installed Pinned Qt
|
||||
- script: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/aac86fc018c48d7b6f23a2e7535276899774567a/Formula/openssl.rb
|
||||
displayName: Installed Pinned OpenSSL
|
||||
- script: sh -x ./clean_build.sh
|
||||
displayName: Clean Build
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Release DMG
|
||||
condition: eq(variables['B_BUILD_TYPE'], 'Release')
|
||||
inputs:
|
||||
pathtoPublish: build/bundle
|
||||
artifactName: Mac Release Disk Image and App
|
||||
6
azure-pipelines/build_env_tmpl.bat
Normal file
6
azure-pipelines/build_env_tmpl.bat
Normal file
@@ -0,0 +1,6 @@
|
||||
set B_BUILD_TYPE=%CI_ENV_BUILD_TYPE%
|
||||
set B_QT_ROOT=%cd%\deps\Qt
|
||||
set B_QT_VER=Qt5.12.3\5.12.3
|
||||
set B_QT_MSVC=msvc2017_64
|
||||
set B_BONJOUR=%cd%\deps\BonjourSDKLike
|
||||
|
||||
12
azure-pipelines/download_install_bonjour_sdk_like.ps1
Normal file
12
azure-pipelines/download_install_bonjour_sdk_like.ps1
Normal file
@@ -0,0 +1,12 @@
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
New-Item -Force -ItemType Directory -Path ".\deps\"
|
||||
$Wc = New-Object System.Net.WebClient
|
||||
$Wc.DownloadFile('https://github.com/nelsonjchen/mDNSResponder/releases/download/v2019.05.08.1/x64_RelWithDebInfo.zip', 'deps\BonjourSDKLike.zip') ;
|
||||
Write-Output 'Downloaded BonjourSDKLike Zip'
|
||||
Write-Output 'Unzipping BonjourSDKLike Zip'
|
||||
Remove-Item -Recurse -Force -ErrorAction Ignore .\deps\BonjourSDKLike
|
||||
Expand-Archive .\deps\BonjourSDKLike.zip -DestinationPath .\deps\BonjourSDKLike
|
||||
Write-Output 'Installed BonjourSDKLike Zip'
|
||||
Remove-Item deps\BonjourSDKLike.zip
|
||||
Write-Output 'Deleted BonjourSDKLike Zip'
|
||||
26
azure-pipelines/download_install_qt.ps1
Normal file
26
azure-pipelines/download_install_qt.ps1
Normal file
@@ -0,0 +1,26 @@
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$qli_install_version = '2019.05.26.1'
|
||||
$qt_version = '5.12.3'
|
||||
|
||||
New-Item -Force -ItemType Directory -Path ".\deps\"
|
||||
|
||||
Write-Output 'Downloading QLI Installer'
|
||||
$Wc = New-Object System.Net.WebClient
|
||||
$Wc.DownloadFile("https://github.com/nelsonjchen/qli-installer/archive/v$qli_install_version.zip", '.\deps\qli-installer.zip') ;
|
||||
Write-Output 'Downloaded QLI Installer'
|
||||
|
||||
Write-Output 'Extracting QLI Installer'
|
||||
Expand-Archive deps\qli-installer.zip deps\
|
||||
Move-Item .\deps\qli-installer-$qli_install_version\ .\deps\qli-installer
|
||||
Write-Output 'Extracted QLI Installer'
|
||||
|
||||
Write-Output 'Installing QLI Installer Dependencies'
|
||||
pip install -r .\deps\qli-installer\requirements.txt
|
||||
Write-Output 'Installed QLI Installer Dependencies'
|
||||
|
||||
Write-Output 'Starting QT Installer'
|
||||
$Env:QLI_OUT_DIR = ".\deps\Qt\Qt$qt_version"
|
||||
$Env:QLI_BASE_URL = "http://mirrors.ocf.berkeley.edu/qt/online/qtsdkrepository/"
|
||||
python .\deps\qli-installer\qli-installer.py $qt_version windows desktop win64_msvc2017_64
|
||||
Write-Output 'Installed QT Installer'
|
||||
34
build_installer.bat
Normal file
34
build_installer.bat
Normal file
@@ -0,0 +1,34 @@
|
||||
@echo off
|
||||
set INNO_ROOT=C:\Program Files (x86)\Inno Setup 5
|
||||
|
||||
set savedir=%cd%
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist build\bin\Release goto buildproject
|
||||
|
||||
echo Building 64-bit Windows installer...
|
||||
|
||||
cd build\installer-inno
|
||||
if ERRORLEVEL 1 goto buildproject
|
||||
"%INNO_ROOT%\ISCC.exe" /Qp barrier.iss
|
||||
if ERRORLEVEL 1 goto failed
|
||||
|
||||
echo Build completed successfully
|
||||
goto done
|
||||
|
||||
:buildproject
|
||||
echo To build a 64-bit Windows installer:
|
||||
echo - set B_BUILD_TYPE=Release in build_env.bat
|
||||
echo - also set other environmental overrides necessary for your build environment
|
||||
echo - run clean_build.bat to build Barrier and verify that it succeeds
|
||||
echo - re-run this script to create the installation package
|
||||
goto done
|
||||
|
||||
:failed
|
||||
echo Build failed
|
||||
|
||||
:done
|
||||
set INNO_ROOT=
|
||||
|
||||
cd /d %savedir%
|
||||
set savedir=
|
||||
84
clean_build.bat
Normal file
84
clean_build.bat
Normal file
@@ -0,0 +1,84 @@
|
||||
@echo off
|
||||
|
||||
REM defaults - override them by creating a build_env.bat file
|
||||
set B_BUILD_TYPE=Debug
|
||||
set B_QT_ROOT=C:\Qt
|
||||
set B_QT_VER=5.11.1
|
||||
set B_QT_MSVC=msvc2017_64
|
||||
set B_BONJOUR=C:\Program Files\Bonjour SDK
|
||||
|
||||
set savedir=%cd%
|
||||
cd /d %~dp0
|
||||
|
||||
REM cmake generator name for the target build system
|
||||
if "%VisualStudioVersion%"=="15.0" (
|
||||
set cmake_gen=Visual Studio 15 2017
|
||||
) else if "%VisualStudioVersion%"=="16.0" (
|
||||
set cmake_gen=Visual Studio 16 2019
|
||||
) else (
|
||||
echo Visual Studio version was not detected.
|
||||
echo Did you forget to run inside a VS developer prompt?
|
||||
echo Using the default cmake generator.
|
||||
set cmake_gen=Visual Studio 16 2019
|
||||
)
|
||||
|
||||
if exist build_env.bat call build_env.bat
|
||||
|
||||
REM needed by cmake to set bonjour include dir
|
||||
set BONJOUR_SDK_HOME=%B_BONJOUR%
|
||||
|
||||
REM full path to Qt stuff we need
|
||||
set B_QT_FULLPATH=%B_QT_ROOT%\%B_QT_VER%\%B_QT_MSVC%
|
||||
|
||||
echo Bonjour: %BONJOUR_SDK_HOME%
|
||||
echo Qt: %B_QT_FULLPATH%
|
||||
|
||||
rmdir /q /s build
|
||||
mkdir build
|
||||
if ERRORLEVEL 1 goto failed
|
||||
cd build
|
||||
cmake -G "%cmake_gen%" -A x64 -D CMAKE_BUILD_TYPE=%B_BUILD_TYPE% -D CMAKE_PREFIX_PATH="%B_QT_FULLPATH%" -D DNSSD_LIB="%B_BONJOUR%\Lib\x64\dnssd.lib" -D QT_VERSION=%B_QT_VER% ..
|
||||
if ERRORLEVEL 1 goto failed
|
||||
echo @msbuild barrier.sln /p:Platform="x64" /p:Configuration=%B_BUILD_TYPE% /m %B_BUILD_OPTIONS% > make.bat
|
||||
call make.bat
|
||||
if ERRORLEVEL 1 goto failed
|
||||
if exist bin\Debug (
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Cored.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Guid.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Networkd.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Widgetsd.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Cored.dll bin\Debug\ > NUL
|
||||
copy ..\ext\openssl\windows\x64\bin\* bin\Debug\ > NUL
|
||||
copy ..\res\openssl\barrier.conf bin\Debug\ > NUL
|
||||
) else if exist bin\Release (
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Core.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Gui.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Network.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Widgets.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Core.dll bin\Release\ > NUL
|
||||
copy ..\ext\openssl\windows\x64\bin\* bin\Release\ > NUL
|
||||
copy ..\res\openssl\barrier.conf bin\Release\ > NUL
|
||||
mkdir bin\Release\platforms
|
||||
copy %B_QT_FULLPATH%\plugins\platforms\qwindows.dll bin\Release\platforms\ > NUL
|
||||
) else (
|
||||
echo Remember to copy supporting binaries and confiuration files!
|
||||
)
|
||||
|
||||
echo Build completed successfully
|
||||
goto done
|
||||
|
||||
:failed
|
||||
echo Build failed
|
||||
|
||||
:done
|
||||
cd /d %savedir%
|
||||
|
||||
set B_BUILD_TYPE=
|
||||
set B_QT_ROOT=
|
||||
set B_QT_VER=
|
||||
set B_QT_MSVC=
|
||||
set B_BONJOUR=
|
||||
set BONJOUR_SDK_HOME=
|
||||
set B_QT_FULLPATH=
|
||||
set savedir=
|
||||
set cmake_gen=
|
||||
28
clean_build.sh
Executable file
28
clean_build.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
cd "$(dirname $0)" || exit 1
|
||||
# some environments have cmake v2 as 'cmake' and v3 as 'cmake3'
|
||||
# check for cmake3 first then fallback to just cmake
|
||||
B_CMAKE=`type cmake3 2>/dev/null`
|
||||
if [ $? -eq 0 ]; then
|
||||
B_CMAKE=`echo $B_CMAKE | cut -d' ' -f3`
|
||||
else
|
||||
B_CMAKE=cmake
|
||||
fi
|
||||
# default build configuration
|
||||
B_BUILD_TYPE=${B_BUILD_TYPE:-Debug}
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
# OSX needs a lot of extra help, poor thing
|
||||
# run the osx_environment.sh script to fix paths
|
||||
. ./osx_environment.sh
|
||||
B_CMAKE_FLAGS="-DCMAKE_OSX_SYSROOT=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $B_CMAKE_FLAGS"
|
||||
fi
|
||||
# allow local customizations to build environment
|
||||
[ -r ./build_env.sh ] && . ./build_env.sh
|
||||
B_CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=$B_BUILD_TYPE $B_CMAKE_FLAGS"
|
||||
rm -rf build
|
||||
mkdir build || exit 1
|
||||
cd build || exit 1
|
||||
echo Starting Barrier $B_BUILD_TYPE build...
|
||||
$B_CMAKE $B_CMAKE_FLAGS .. || exit 1
|
||||
make || exit 1
|
||||
echo "Build completed successfully"
|
||||
9
cmake/Package.cmake
Normal file
9
cmake/Package.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
if (UNIX)
|
||||
set (CPACK_PACKAGE_VERSION_MAJOR ${BARRIER_VERSION_MAJOR})
|
||||
set (CPACK_PACKAGE_VERSION_MINOR ${BARRIER_VERSION_MINOR})
|
||||
set (CPACK_PACKAGE_VERSION_PATCH ${BARRIER_VERSION_PATCH})
|
||||
set (CPACK_GENERATOR "TBZ2")
|
||||
set (CPACK_SOURCE_GENERATOR "TXZ")
|
||||
set (CPACK_SOURCE_IGNORE_FILES "/build/;\.gitignore$;/\.git/;/.github/;\.swp$;build_env\.*")
|
||||
include (CPack)
|
||||
endif()
|
||||
@@ -1,90 +1,94 @@
|
||||
cmake_minimum_required (VERSION 3.4)
|
||||
|
||||
set (BARRIER_VERSION_MAJOR 2)
|
||||
set (BARRIER_VERSION_MINOR 3)
|
||||
set (BARRIER_VERSION_PATCH 1)
|
||||
|
||||
#
|
||||
# Synergy Version
|
||||
# Barrier Version
|
||||
#
|
||||
if (NOT DEFINED SYNERGY_VERSION_MAJOR)
|
||||
if (DEFINED ENV{SYNERGY_VERSION_MAJOR})
|
||||
set (SYNERGY_VERSION_MAJOR $ENV{SYNERGY_VERSION_MAJOR})
|
||||
if (NOT DEFINED BARRIER_VERSION_MAJOR)
|
||||
if (DEFINED ENV{BARRIER_VERSION_MAJOR})
|
||||
set (BARRIER_VERSION_MAJOR $ENV{BARRIER_VERSION_MAJOR})
|
||||
else()
|
||||
set (SYNERGY_VERSION_MAJOR 1)
|
||||
set (BARRIER_VERSION_MAJOR 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED SYNERGY_VERSION_MINOR)
|
||||
if (DEFINED ENV{SYNERGY_VERSION_MINOR})
|
||||
set (SYNERGY_VERSION_MINOR $ENV{SYNERGY_VERSION_MINOR})
|
||||
if (NOT DEFINED BARRIER_VERSION_MINOR)
|
||||
if (DEFINED ENV{BARRIER_VERSION_MINOR})
|
||||
set (BARRIER_VERSION_MINOR $ENV{BARRIER_VERSION_MINOR})
|
||||
else()
|
||||
set (SYNERGY_VERSION_MINOR 9)
|
||||
set (BARRIER_VERSION_MINOR 9)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED SYNERGY_VERSION_PATCH)
|
||||
if (DEFINED ENV{SYNERGY_VERSION_PATCH})
|
||||
set (SYNERGY_VERSION_PATCH $ENV{SYNERGY_VERSION_PATCH})
|
||||
if (NOT DEFINED BARRIER_VERSION_PATCH)
|
||||
if (DEFINED ENV{BARRIER_VERSION_PATCH})
|
||||
set (BARRIER_VERSION_PATCH $ENV{BARRIER_VERSION_PATCH})
|
||||
else()
|
||||
set (SYNERGY_VERSION_PATCH 0)
|
||||
message (WARNING "Synergy version wasn't set. Set to ${SYNERGY_VERSION_MAJOR}.${SYNERGY_VERSION_MINOR}.${SYNERGY_VERSION_PATCH}")
|
||||
set (BARRIER_VERSION_PATCH 0)
|
||||
message (WARNING "Barrier version wasn't set. Set to ${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED SYNERGY_VERSION_STAGE)
|
||||
if (DEFINED ENV{SYNERGY_VERSION_STAGE})
|
||||
set (SYNERGY_VERSION_STAGE $ENV{SYNERGY_VERSION_STAGE})
|
||||
if (NOT DEFINED BARRIER_VERSION_STAGE)
|
||||
if (DEFINED ENV{BARRIER_VERSION_STAGE})
|
||||
set (BARRIER_VERSION_STAGE $ENV{BARRIER_VERSION_STAGE})
|
||||
else()
|
||||
set (SYNERGY_VERSION_STAGE "snapshot")
|
||||
set (BARRIER_VERSION_STAGE "snapshot")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED SYNERGY_REVISION)
|
||||
if (NOT DEFINED BARRIER_REVISION)
|
||||
if (DEFINED ENV{GIT_COMMIT})
|
||||
string (SUBSTRING $ENV{GIT_COMMIT} 0 8 SYNERGY_REVISION)
|
||||
elseif (SYNERGY_VERSION_STAGE STREQUAL "snapshot")
|
||||
execute_process (
|
||||
COMMAND git rev-parse --short=8 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE SYNERGY_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
string (SUBSTRING $ENV{GIT_COMMIT} 0 8 BARRIER_REVISION)
|
||||
else()
|
||||
find_program (GIT_BINARY git)
|
||||
if (NOT GIT_BINARY STREQUAL "GIT_BINARY-NOTFOUND")
|
||||
execute_process (
|
||||
COMMAND git rev-parse --short=8 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE BARRIER_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (DEFINED SYNERGY_REVISION)
|
||||
string(LENGTH ${SYNERGY_REVISION} SYNERGY_REVISION_LENGTH)
|
||||
if (NOT ((SYNERGY_REVISION MATCHES "^[a-f0-9]+") AND (SYNERGY_REVISION_LENGTH EQUAL "8")))
|
||||
message (FATAL_ERROR "SYNERGY_REVISION ('${SYNERGY_REVISION}') should be a short commit hash")
|
||||
endif()
|
||||
unset (SYNERGY_REVISION_LENGTH)
|
||||
else()
|
||||
set (SYNERGY_REVISION "0badc0de")
|
||||
string(LENGTH "${BARRIER_REVISION}" BARRIER_REVISION_LENGTH)
|
||||
if (NOT BARRIER_REVISION_LENGTH EQUAL 8 OR NOT BARRIER_REVISION MATCHES "^[a-f0-9]+")
|
||||
set (BARRIER_REVISION "00000000")
|
||||
message (WARNING "revision not found. setting to ${BARRIER_REVISION}")
|
||||
endif()
|
||||
unset (BARRIER_REVISION_LENGTH)
|
||||
|
||||
if (DEFINED ENV{BUILD_NUMBER})
|
||||
set (SYNERGY_BUILD_NUMBER $ENV{BUILD_NUMBER})
|
||||
set (BARRIER_BUILD_NUMBER $ENV{BUILD_NUMBER})
|
||||
else()
|
||||
set (SYNERGY_BUILD_NUMBER 1)
|
||||
set (BARRIER_BUILD_NUMBER 1)
|
||||
endif()
|
||||
|
||||
string (TIMESTAMP SYNERGY_BUILD_DATE "%Y%m%d" UTC)
|
||||
set (SYNERGY_SNAPSHOT_INFO ".${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}")
|
||||
string (TIMESTAMP BARRIER_BUILD_DATE "%Y%m%d" UTC)
|
||||
set (BARRIER_SNAPSHOT_INFO ".${BARRIER_VERSION_STAGE}.${BARRIER_REVISION}")
|
||||
|
||||
if (SYNERGY_VERSION_STAGE STREQUAL "snapshot")
|
||||
set (SYNERGY_VERSION_TAG "${SYNERGY_VERSION_STAGE}.b${SYNERGY_BUILD_NUMBER}-${SYNERGY_REVISION}")
|
||||
if (BARRIER_VERSION_STAGE STREQUAL "snapshot")
|
||||
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}.b${BARRIER_BUILD_NUMBER}-${BARRIER_REVISION}")
|
||||
else()
|
||||
set (SYNERGY_VERSION_TAG "${SYNERGY_VERSION_STAGE}")
|
||||
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}")
|
||||
endif()
|
||||
|
||||
set (SYNERGY_VERSION "${SYNERGY_VERSION_MAJOR}.${SYNERGY_VERSION_MINOR}.${SYNERGY_VERSION_PATCH}")
|
||||
set (SYNERGY_VERSION_STRING "${SYNERGY_VERSION}-${SYNERGY_VERSION_TAG}")
|
||||
message (STATUS "Full Synergy version string is '" ${SYNERGY_VERSION_STRING} "'")
|
||||
set (BARRIER_VERSION "${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}-${BARRIER_VERSION_STAGE}")
|
||||
set (BARRIER_VERSION_STRING "${BARRIER_VERSION}-${BARRIER_VERSION_TAG}")
|
||||
message (STATUS "Full Barrier version string is '" ${BARRIER_VERSION_STRING} "'")
|
||||
|
||||
add_definitions (-DSYNERGY_VERSION="${SYNERGY_VERSION}")
|
||||
add_definitions (-DSYNERGY_VERSION_STRING="${SYNERGY_VERSION_STRING}")
|
||||
add_definitions (-DSYNERGY_REVISION="${SYNERGY_REVISION}")
|
||||
add_definitions (-DSYNERGY_BUILD_DATE="${SYNERGY_BUILD_DATE}")
|
||||
add_definitions (-DSYNERGY_BUILD_NUMBER=${SYNERGY_BUILD_NUMBER})
|
||||
add_definitions (-DBARRIER_VERSION="${BARRIER_VERSION}")
|
||||
add_definitions (-DBARRIER_VERSION_STRING="${BARRIER_VERSION_STRING}")
|
||||
add_definitions (-DBARRIER_REVISION="${BARRIER_REVISION}")
|
||||
add_definitions (-DBARRIER_BUILD_DATE="${BARRIER_BUILD_DATE}")
|
||||
add_definitions (-DBARRIER_BUILD_NUMBER=${BARRIER_BUILD_NUMBER})
|
||||
|
||||
if (SYNERGY_DEVELOPER_MODE)
|
||||
add_definitions (-DSYNERGY_DEVELOPER_MODE=1)
|
||||
if (BARRIER_DEVELOPER_MODE)
|
||||
add_definitions (-DBARRIER_DEVELOPER_MODE=1)
|
||||
endif()
|
||||
|
||||
|
||||
5
debian/changelog
vendored
Normal file
5
debian/changelog
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
barrier (2.1-1) unstable; urgency=low
|
||||
|
||||
* Initial release (Closes: #123456)
|
||||
|
||||
-- Debauchee Open Source Group <debauchee.oss@gmail.com> Sat, 01 Apr 2018 00:00:00 +0000
|
||||
12
debian/control
vendored
12
debian/control
vendored
@@ -1,17 +1,17 @@
|
||||
Source: synergy
|
||||
Source: barrier
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Standards-Version: 3.9.7
|
||||
Homepage: https://www.symless.com/
|
||||
Maintainer: Symless <engineering@symless.com>
|
||||
Homepage: https://github.com/debauchee/barrier/
|
||||
Maintainer: Debauchee Open Source Group <todo@mail.com>
|
||||
|
||||
Package: synergy
|
||||
Package: barrier
|
||||
Architecture: amd64
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Depends: ${shlibs:Depends},
|
||||
${misc:Depends}
|
||||
Description: Keyboard and mouse sharing solution
|
||||
Synergy allows you to share one mouse and keyboard between multiple computers.
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
Homepage: https://symless.com/synergy
|
||||
Homepage: https://github.com/debauchee/barrier/
|
||||
|
||||
6
debian/copyright
vendored
6
debian/copyright
vendored
@@ -1,5 +1,5 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: Synergy
|
||||
Source: https://www.symless.com/synergy
|
||||
Upstream-Name: Barrier
|
||||
Source: https://github.com/debauchee/barrier/
|
||||
Disclaimer: This package is not part of the Debian project as it contains closed source proprietary components
|
||||
Copyright: Copyright (C) 2012-2017 Symless Ltd
|
||||
Copyright: Copyright (C) 2018 Debauchee Open Source Group
|
||||
|
||||
80
dist/inno/barrier.iss.in
vendored
Normal file
80
dist/inno/barrier.iss.in
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
#define MyAppName "Barrier"
|
||||
#define MyAppVersion "@BARRIER_VERSION@"
|
||||
#define MyAppPublisher "Debauchee Open Source Group"
|
||||
#define MyAppURL "https://github.com/debauchee/barrier/wiki"
|
||||
#define MyAppExeName "barrier.exe"
|
||||
#define MyAppServiceName "Barrier"
|
||||
#define MyAppServiceExe "barrierd.exe"
|
||||
#define MyAppServiceDesc "Manages the Barrier background processes."
|
||||
#define MyAppListenerDesc "Barrier Listener"
|
||||
|
||||
[Setup]
|
||||
AppId={{41036EA6-3F7A-4803-8AE0-469E5E91EFCC}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppVersion}
|
||||
AppVerName={#MyAppName} {#MyAppVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
AppPublisherURL={#MyAppURL}
|
||||
AppSupportURL={#MyAppURL}
|
||||
AppUpdatesURL={#MyAppURL}
|
||||
DefaultDirName={pf}\{#MyAppName}
|
||||
DisableProgramGroupPage=yes
|
||||
LicenseFile=@CMAKE_CURRENT_SOURCE_DIR@/res/License.rtf
|
||||
OutputDir=@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/../installer-inno/bin
|
||||
OutputBaseFilename=BarrierSetup-{#MyAppVersion}
|
||||
SetupIconFile=@CMAKE_CURRENT_SOURCE_DIR@/res/barrier.ico
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
ArchitecturesInstallIn64BitMode=x64 ia64
|
||||
|
||||
#include "scripts\lang\english.iss"
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
|
||||
[Files]
|
||||
Source: "@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/Release/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||
|
||||
[Run]
|
||||
; there's no "check if exists" or "insert if not exists" for netsh's firewall commands
|
||||
; to avoid duplicate entries remove the existing rule (fails if it doesn't exist) before adding
|
||||
Filename: {sys}\netsh.exe; Parameters: "advfirewall firewall delete rule name=""{#MyAppListenerDesc}"""; Flags: runhidden
|
||||
Filename: {sys}\netsh.exe; Parameters: "advfirewall firewall add rule name=""{#MyAppListenerDesc}"" protocol=TCP dir=in localport=24800 action=allow"; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "create {#MyAppServiceName} start= auto binPath= ""{app}\{#MyAppServiceExe}"""; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "description {#MyAppServiceName} ""{#MyAppServiceDesc}"""; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "start {#MyAppServiceName}"; Flags: runhidden
|
||||
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
||||
|
||||
[UninstallDelete]
|
||||
Type: files; Name: "{app}\barrierd.log"
|
||||
|
||||
[UninstallRun]
|
||||
Filename: {sys}\sc.exe; Parameters: "stop {#MyAppServiceName}"; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "delete {#MyAppServiceName}"; Flags: runhidden
|
||||
Filename: {sys}\netsh.exe; Parameters: "advfirewall firewall delete rule name=""{#MyAppListenerDesc}"""; Flags: runhidden
|
||||
|
||||
[CustomMessages]
|
||||
DependenciesDir="redist"
|
||||
|
||||
; shared code for installing the products
|
||||
#include "scripts\products.iss"
|
||||
#include "scripts\products\stringversion.iss"
|
||||
#include "scripts\products\winversion.iss"
|
||||
#include "scripts\products\msiproduct.iss"
|
||||
#include "scripts\products\vcredist2017.iss"
|
||||
|
||||
[Code]
|
||||
function InitializeSetup(): boolean;
|
||||
begin
|
||||
// initialize windows version
|
||||
initwinversion();
|
||||
|
||||
vcredist2017('14'); // min allowed version is 14.0
|
||||
|
||||
Result := true;
|
||||
end;
|
||||
49
dist/inno/scripts/isxdl/english.ini
vendored
Normal file
49
dist/inno/scripts/isxdl/english.ini
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
[strings]
|
||||
; General
|
||||
100=File download
|
||||
101=Do you want to cancel the download?
|
||||
102=%1 (%2 of %3)
|
||||
103=%1 KB
|
||||
104=%1 KB of %2 KB (%3%)
|
||||
|
||||
; Status information
|
||||
110=Getting file information...
|
||||
111=Redirecting to %1
|
||||
112=Sending request...
|
||||
113=Resolving %1
|
||||
114=Connected to %1
|
||||
115=Receiving...
|
||||
116=Connecting to %1
|
||||
|
||||
; Error messages
|
||||
120=Error connecting to the internet.\n\n%1
|
||||
121=Error opening %1.\n\nThe server returned status code %2.
|
||||
122=Error reading URL.\n\n%1
|
||||
123=Error writing file %1.\n\n%2
|
||||
124=Error opening file %1.\n\n%2
|
||||
125='%1' is an invalid URL.
|
||||
126=Error opening %1.\n\n%2
|
||||
127=Error sending request.\n\n%1
|
||||
128=Unsupported protocol. Only HTTP and FTP protocols are supported.
|
||||
129=Failed to connect to %1.\n\n%2
|
||||
130=Failed to query status code.\n\n%1
|
||||
131=Error requesting file.\n\n%1
|
||||
|
||||
; Other
|
||||
144=About...
|
||||
146=Download
|
||||
147=Setup is now downloading additional files to your computer.
|
||||
|
||||
; labels
|
||||
160=File:
|
||||
161=Speed:
|
||||
162=Status:
|
||||
163=Elapsed Time:
|
||||
164=Remaining Time:
|
||||
165=Current File:
|
||||
166=Overall Progress:
|
||||
167=Cancel
|
||||
168=OK
|
||||
169=User Name and Password
|
||||
170=User Name:
|
||||
171=Password:
|
||||
BIN
dist/inno/scripts/isxdl/isxdl.dll
vendored
Normal file
BIN
dist/inno/scripts/isxdl/isxdl.dll
vendored
Normal file
Binary file not shown.
14
dist/inno/scripts/isxdl/isxdl.iss
vendored
Normal file
14
dist/inno/scripts/isxdl/isxdl.iss
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
[Files]
|
||||
Source: "scripts\isxdl\isxdl.dll"; Flags: dontcopy
|
||||
|
||||
[Code]
|
||||
procedure isxdl_AddFile(URL, Filename: PAnsiChar);
|
||||
external 'isxdl_AddFile@files:isxdl.dll stdcall';
|
||||
|
||||
function isxdl_DownloadFiles(hWnd: Integer): Integer;
|
||||
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
|
||||
|
||||
function isxdl_SetOption(Option, Value: PAnsiChar): Integer;
|
||||
external 'isxdl_SetOption@files:isxdl.dll stdcall';
|
||||
|
||||
[Setup]
|
||||
18
dist/inno/scripts/lang/english.iss
vendored
Normal file
18
dist/inno/scripts/lang/english.iss
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
[Languages]
|
||||
Name: "en"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[CustomMessages]
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
en.lcid=1033
|
||||
en.depdownload_msg=The following applications are required before setup can continue:%n%n%1%nDownload and install now?
|
||||
en.depdownload_memo_title=Download dependencies
|
||||
en.depinstall_memo_title=Install dependencies
|
||||
en.depinstall_title=Installing dependencies
|
||||
en.depinstall_description=Please wait while Setup installs dependencies on your computer.
|
||||
en.depinstall_status=Installing %1...
|
||||
en.depinstall_missing=%1 must be installed before setup can continue. Please install %1 and run Setup again.
|
||||
en.depinstall_error=An error occured while installing the dependencies. Please restart the computer and run the setup again or install the following dependencies manually:%n
|
||||
|
||||
en.isxdl_langfile=
|
||||
|
||||
[Files]
|
||||
6
dist/inno/scripts/products.iss
vendored
Normal file
6
dist/inno/scripts/products.iss
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
#include "isxdl\isxdl.iss"
|
||||
|
||||
[Code]
|
||||
#include "products.pas"
|
||||
|
||||
[Setup]
|
||||
329
dist/inno/scripts/products.pas
vendored
Normal file
329
dist/inno/scripts/products.pas
vendored
Normal file
@@ -0,0 +1,329 @@
|
||||
{
|
||||
--- TYPES AND VARIABLES ---
|
||||
}
|
||||
type
|
||||
TProduct = record
|
||||
File: String;
|
||||
Title: String;
|
||||
Parameters: String;
|
||||
ForceSuccess : boolean;
|
||||
InstallClean : boolean;
|
||||
MustRebootAfter : boolean;
|
||||
end;
|
||||
|
||||
InstallResult = (InstallSuccessful, InstallRebootRequired, InstallError);
|
||||
|
||||
var
|
||||
installMemo, downloadMessage: string;
|
||||
products: array of TProduct;
|
||||
delayedReboot, isForcedX86: boolean;
|
||||
DependencyPage: TOutputProgressWizardPage;
|
||||
|
||||
procedure AddProduct(filename, parameters, title, size, url: string; forceSuccess, installClean, mustRebootAfter : boolean);
|
||||
{
|
||||
Adds a product to the list of products to download.
|
||||
Parameters:
|
||||
filename: the file name under which to save the file
|
||||
parameters: the parameters with which to run the file
|
||||
title: the product title
|
||||
size: the file size
|
||||
url: the URL to download from
|
||||
forceSuccess: whether to continue in case of setup failure
|
||||
installClean: whether the product needs a reboot before installing
|
||||
mustRebootAfter: whether the product needs a reboot after installing
|
||||
}
|
||||
var
|
||||
path: string;
|
||||
i: Integer;
|
||||
begin
|
||||
installMemo := installMemo + '%1' + title + #13;
|
||||
|
||||
path := ExpandConstant('{src}{\}') + CustomMessage('DependenciesDir') + '\' + filename;
|
||||
if not FileExists(path) then begin
|
||||
path := ExpandConstant('{tmp}{\}') + filename;
|
||||
|
||||
if not FileExists(path) then begin
|
||||
isxdl_AddFile(url, path);
|
||||
|
||||
downloadMessage := downloadMessage + '%1' + title + ' (' + size + ')' + #13;
|
||||
end;
|
||||
end;
|
||||
|
||||
i := GetArrayLength(products);
|
||||
SetArrayLength(products, i + 1);
|
||||
products[i].File := path;
|
||||
products[i].Title := title;
|
||||
products[i].Parameters := parameters;
|
||||
products[i].ForceSuccess := forceSuccess;
|
||||
products[i].InstallClean := installClean;
|
||||
products[i].MustRebootAfter := mustRebootAfter;
|
||||
end;
|
||||
|
||||
function SmartExec(product : TProduct; var resultcode : Integer): boolean;
|
||||
{
|
||||
Executes a product and returns the exit code.
|
||||
Parameters:
|
||||
product: the product to install
|
||||
resultcode: the exit code
|
||||
}
|
||||
begin
|
||||
if (LowerCase(Copy(product.File, Length(product.File) - 2, 3)) = 'exe') then begin
|
||||
Result := Exec(product.File, product.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, resultcode);
|
||||
end else begin
|
||||
Result := ShellExec('', product.File, product.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, resultcode);
|
||||
end;
|
||||
end;
|
||||
|
||||
function PendingReboot: boolean;
|
||||
{
|
||||
Checks whether the machine has a pending reboot.
|
||||
}
|
||||
var names: String;
|
||||
begin
|
||||
if (RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'PendingFileRenameOperations', names)) then begin
|
||||
Result := true;
|
||||
end else if ((RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'SetupExecute', names)) and (names <> '')) then begin
|
||||
Result := true;
|
||||
end else begin
|
||||
Result := false;
|
||||
end;
|
||||
end;
|
||||
|
||||
function InstallProducts: InstallResult;
|
||||
{
|
||||
Installs the downloaded products
|
||||
}
|
||||
var
|
||||
resultCode, i, productCount, finishCount: Integer;
|
||||
begin
|
||||
Result := InstallSuccessful;
|
||||
productCount := GetArrayLength(products);
|
||||
|
||||
if productCount > 0 then begin
|
||||
DependencyPage := CreateOutputProgressPage(CustomMessage('depinstall_title'), CustomMessage('depinstall_description'));
|
||||
DependencyPage.Show;
|
||||
|
||||
for i := 0 to productCount - 1 do begin
|
||||
if (products[i].InstallClean and (delayedReboot or PendingReboot())) then begin
|
||||
Result := InstallRebootRequired;
|
||||
break;
|
||||
end;
|
||||
|
||||
DependencyPage.SetText(FmtMessage(CustomMessage('depinstall_status'), [products[i].Title]), '');
|
||||
DependencyPage.SetProgress(i, productCount);
|
||||
|
||||
while true do begin
|
||||
// set 0 as used code for shown error if SmartExec fails
|
||||
resultCode := 0;
|
||||
if SmartExec(products[i], resultCode) then begin
|
||||
// setup executed; resultCode contains the exit code
|
||||
if (products[i].MustRebootAfter) then begin
|
||||
// delay reboot after install if we installed the last dependency anyways
|
||||
if (i = productCount - 1) then begin
|
||||
delayedReboot := true;
|
||||
end else begin
|
||||
Result := InstallRebootRequired;
|
||||
end;
|
||||
break;
|
||||
end else if (resultCode = 0) or (products[i].ForceSuccess) then begin
|
||||
finishCount := finishCount + 1;
|
||||
break;
|
||||
end else if (resultCode = 3010) then begin
|
||||
// Windows Installer resultCode 3010: ERROR_SUCCESS_REBOOT_REQUIRED
|
||||
delayedReboot := true;
|
||||
finishCount := finishCount + 1;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
case MsgBox(FmtMessage(SetupMessage(msgErrorFunctionFailed), [products[i].Title, IntToStr(resultCode)]), mbError, MB_ABORTRETRYIGNORE) of
|
||||
IDABORT: begin
|
||||
Result := InstallError;
|
||||
break;
|
||||
end;
|
||||
IDIGNORE: begin
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if Result <> InstallSuccessful then begin
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
// only leave not installed products for error message
|
||||
for i := 0 to productCount - finishCount - 1 do begin
|
||||
products[i] := products[i+finishCount];
|
||||
end;
|
||||
SetArrayLength(products, productCount - finishCount);
|
||||
|
||||
DependencyPage.Hide;
|
||||
end;
|
||||
end;
|
||||
|
||||
{
|
||||
--------------------
|
||||
INNO EVENT FUNCTIONS
|
||||
--------------------
|
||||
}
|
||||
|
||||
function PrepareToInstall(var NeedsRestart: boolean): String;
|
||||
{
|
||||
Before the "preparing to install" page.
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
var
|
||||
i: Integer;
|
||||
s: string;
|
||||
begin
|
||||
delayedReboot := false;
|
||||
|
||||
case InstallProducts() of
|
||||
InstallError: begin
|
||||
s := CustomMessage('depinstall_error');
|
||||
|
||||
for i := 0 to GetArrayLength(products) - 1 do begin
|
||||
s := s + #13 + ' ' + products[i].Title;
|
||||
end;
|
||||
|
||||
Result := s;
|
||||
end;
|
||||
InstallRebootRequired: begin
|
||||
Result := products[0].Title;
|
||||
NeedsRestart := true;
|
||||
|
||||
// write into the registry that the installer needs to be executed again after restart
|
||||
RegWriteStringValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', 'InstallBootstrap', ExpandConstant('{srcexe}'));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NeedRestart : boolean;
|
||||
{
|
||||
Checks whether a restart is needed at the end of install
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
begin
|
||||
Result := delayedReboot;
|
||||
end;
|
||||
|
||||
function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
|
||||
{
|
||||
Just before the "ready" page.
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
var
|
||||
s: string;
|
||||
begin
|
||||
if downloadMessage <> '' then
|
||||
s := s + CustomMessage('depdownload_memo_title') + ':' + NewLine + FmtMessage(downloadMessage, [Space]) + NewLine;
|
||||
if installMemo <> '' then
|
||||
s := s + CustomMessage('depinstall_memo_title') + ':' + NewLine + FmtMessage(installMemo, [Space]) + NewLine;
|
||||
|
||||
if MemoDirInfo <> '' then
|
||||
s := s + MemoDirInfo + NewLine + NewLine;
|
||||
if MemoGroupInfo <> '' then
|
||||
s := s + MemoGroupInfo + NewLine + NewLine;
|
||||
if MemoTasksInfo <> '' then
|
||||
s := s + MemoTasksInfo;
|
||||
|
||||
Result := s
|
||||
end;
|
||||
|
||||
function NextButtonClick(CurPageID: Integer): boolean;
|
||||
{
|
||||
At each "next" button click
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
begin
|
||||
Result := true;
|
||||
|
||||
if CurPageID = wpReady then begin
|
||||
if downloadMessage <> '' then begin
|
||||
// change isxdl language only if it is not english because isxdl default language is already english
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
ExtractTemporaryFile(CustomMessage('isxdl_langfile'));
|
||||
isxdl_SetOption('language', ExpandConstant('{tmp}{\}') + CustomMessage('isxdl_langfile'));
|
||||
end;
|
||||
//isxdl_SetOption('title', FmtMessage(SetupMessage(msgSetupWindowTitle), [CustomMessage('appname')]));
|
||||
|
||||
//if SuppressibleMsgBox(FmtMessage(CustomMessage('depdownload_msg'), [FmtMessage(downloadMessage, [''])]), mbConfirmation, MB_YESNO, IDYES) = IDNO then
|
||||
// Result := false
|
||||
//else if
|
||||
if isxdl_DownloadFiles(StrToInt(ExpandConstant('{wizardhwnd}'))) = 0 then
|
||||
Result := false;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{
|
||||
-----------------------------
|
||||
ARCHITECTURE HELPER FUNCTIONS
|
||||
-----------------------------
|
||||
}
|
||||
|
||||
function IsX86: boolean;
|
||||
{
|
||||
Gets whether the computer is x86 (32 bits).
|
||||
}
|
||||
begin
|
||||
Result := isForcedX86 or (ProcessorArchitecture = paX86) or (ProcessorArchitecture = paUnknown);
|
||||
end;
|
||||
|
||||
function IsX64: boolean;
|
||||
{
|
||||
Gets whether the computer is x64 (64 bits).
|
||||
}
|
||||
begin
|
||||
Result := (not isForcedX86) and Is64BitInstallMode and (ProcessorArchitecture = paX64);
|
||||
end;
|
||||
|
||||
function IsIA64: boolean;
|
||||
{
|
||||
Gets whether the computer is IA64 (Itanium 64 bits).
|
||||
}
|
||||
begin
|
||||
Result := (not isForcedX86) and Is64BitInstallMode and (ProcessorArchitecture = paIA64);
|
||||
end;
|
||||
|
||||
function GetString(x86, x64, ia64: String): String;
|
||||
{
|
||||
Gets a string depending on the computer architecture.
|
||||
Parameters:
|
||||
x86: the string if the computer is x86
|
||||
x64: the string if the computer is x64
|
||||
ia64: the string if the computer is IA64
|
||||
}
|
||||
begin
|
||||
if IsX64() and (x64 <> '') then begin
|
||||
Result := x64;
|
||||
end else if IsIA64() and (ia64 <> '') then begin
|
||||
Result := ia64;
|
||||
end else begin
|
||||
Result := x86;
|
||||
end;
|
||||
end;
|
||||
|
||||
function GetArchitectureString(): String;
|
||||
{
|
||||
Gets the "standard" architecture suffix string.
|
||||
Returns either _x64, _ia64 or nothing.
|
||||
}
|
||||
begin
|
||||
if IsX64() then begin
|
||||
Result := '_x64';
|
||||
end else if IsIA64() then begin
|
||||
Result := '_ia64';
|
||||
end else begin
|
||||
Result := '';
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure SetForceX86(value: boolean);
|
||||
{
|
||||
Forces the setup to use X86 products
|
||||
}
|
||||
begin
|
||||
isForcedX86 := value;
|
||||
end;
|
||||
49
dist/inno/scripts/products/msiproduct.iss
vendored
Normal file
49
dist/inno/scripts/products/msiproduct.iss
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
[Code]
|
||||
#ifdef UNICODE
|
||||
#define AW "W"
|
||||
#else
|
||||
#define AW "A"
|
||||
#endif
|
||||
|
||||
type
|
||||
INSTALLSTATE = Longint;
|
||||
const
|
||||
INSTALLSTATE_INVALIDARG = -2; // An invalid parameter was passed to the function.
|
||||
INSTALLSTATE_UNKNOWN = -1; // The product is neither advertised or installed.
|
||||
INSTALLSTATE_ADVERTISED = 1; // The product is advertised but not installed.
|
||||
INSTALLSTATE_ABSENT = 2; // The product is installed for a different user.
|
||||
INSTALLSTATE_DEFAULT = 5; // The product is installed for the current user.
|
||||
|
||||
function MsiQueryProductState(szProduct: string): INSTALLSTATE;
|
||||
external 'MsiQueryProductState{#AW}@msi.dll stdcall';
|
||||
|
||||
function MsiEnumRelatedProducts(szUpgradeCode: string; nReserved: dword; nIndex: dword; szProductCode: string): integer;
|
||||
external 'MsiEnumRelatedProducts{#AW}@msi.dll stdcall';
|
||||
|
||||
function MsiGetProductInfo(szProductCode: string; szProperty: string; szValue: string; var nvalueSize: dword): integer;
|
||||
external 'MsiGetProductInfo{#AW}@msi.dll stdcall';
|
||||
|
||||
function msiproduct(productID: string): boolean;
|
||||
begin
|
||||
Result := MsiQueryProductState(productID) = INSTALLSTATE_DEFAULT;
|
||||
end;
|
||||
|
||||
function msiproductupgrade(upgradeCode: string; minVersion: string): boolean;
|
||||
var
|
||||
productCode, version: string;
|
||||
valueSize: dword;
|
||||
begin
|
||||
SetLength(productCode, 39);
|
||||
Result := false;
|
||||
|
||||
if (MsiEnumRelatedProducts(upgradeCode, 0, 0, productCode) = 0) then begin
|
||||
SetLength(version, 39);
|
||||
valueSize := Length(version);
|
||||
|
||||
if (MsiGetProductInfo(productCode, 'VersionString', version, valueSize) = 0) then begin
|
||||
Result := compareversion(version, minVersion) >= 0;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
[Setup]
|
||||
62
dist/inno/scripts/products/stringversion.iss
vendored
Normal file
62
dist/inno/scripts/products/stringversion.iss
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
[Code]
|
||||
function stringtoversion(var temp: String): Integer;
|
||||
var
|
||||
part: String;
|
||||
pos1: Integer;
|
||||
|
||||
begin
|
||||
if (Length(temp) = 0) then begin
|
||||
Result := -1;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
pos1 := Pos('.', temp);
|
||||
if (pos1 = 0) then begin
|
||||
Result := StrToInt(temp);
|
||||
temp := '';
|
||||
end else begin
|
||||
part := Copy(temp, 1, pos1 - 1);
|
||||
temp := Copy(temp, pos1 + 1, Length(temp));
|
||||
Result := StrToInt(part);
|
||||
end;
|
||||
end;
|
||||
|
||||
function compareinnerversion(var x, y: String): Integer;
|
||||
var
|
||||
num1, num2: Integer;
|
||||
|
||||
begin
|
||||
num1 := stringtoversion(x);
|
||||
num2 := stringtoversion(y);
|
||||
if (num1 = -1) and (num2 = -1) then begin
|
||||
Result := 0;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if (num1 < 0) then begin
|
||||
num1 := 0;
|
||||
end;
|
||||
if (num2 < 0) then begin
|
||||
num2 := 0;
|
||||
end;
|
||||
|
||||
if (num1 < num2) then begin
|
||||
Result := -1;
|
||||
end else if (num1 > num2) then begin
|
||||
Result := 1;
|
||||
end else begin
|
||||
Result := compareinnerversion(x, y);
|
||||
end;
|
||||
end;
|
||||
|
||||
function compareversion(versionA, versionB: String): Integer;
|
||||
var
|
||||
temp1, temp2: String;
|
||||
|
||||
begin
|
||||
temp1 := versionA;
|
||||
temp2 := versionB;
|
||||
Result := compareinnerversion(temp1, temp2);
|
||||
end;
|
||||
|
||||
[Setup]
|
||||
32
dist/inno/scripts/products/vcredist2017.iss
vendored
Normal file
32
dist/inno/scripts/products/vcredist2017.iss
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
; requires Windows 10, Windows 7 Service Pack 1, Windows 8, Windows 8.1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Server 2012, Windows Vista Service Pack 2, Windows XP Service Pack 3
|
||||
; http://www.visualstudio.com/en-us/downloads/
|
||||
|
||||
[CustomMessages]
|
||||
vcredist2017_title=Visual C++ 2017 Redistributable
|
||||
vcredist2017_title_x64=Visual C++ 2017 64-Bit Redistributable
|
||||
|
||||
vcredist2017_size=13.7 MB
|
||||
vcredist2017_size_x64=14.5 MB
|
||||
|
||||
[Code]
|
||||
const
|
||||
vcredist2017_url = 'http://download.microsoft.com/download/1/f/e/1febbdb2-aded-4e14-9063-39fb17e88444/vc_redist.x86.exe';
|
||||
vcredist2017_url_x64 = 'http://download.microsoft.com/download/3/b/f/3bf6e759-c555-4595-8973-86b7b4312927/vc_redist.x64.exe';
|
||||
|
||||
vcredist2017_upgradecode = '{65E5BD06-6392-3027-8C26-853107D3CF1A}';
|
||||
vcredist2017_upgradecode_x64 = '{36F68A90-239C-34DF-B58C-64B30153CE35}';
|
||||
|
||||
procedure vcredist2017(minVersion: string);
|
||||
begin
|
||||
if (not IsIA64()) then begin
|
||||
if (not msiproductupgrade(GetString(vcredist2017_upgradecode, vcredist2017_upgradecode_x64, ''), minVersion)) then
|
||||
AddProduct('vcredist2017' + GetArchitectureString() + '.exe',
|
||||
'/passive /norestart',
|
||||
CustomMessage('vcredist2017_title' + GetArchitectureString()),
|
||||
CustomMessage('vcredist2017_size' + GetArchitectureString()),
|
||||
GetString(vcredist2017_url, vcredist2017_url_x64, ''),
|
||||
false, false, false);
|
||||
end;
|
||||
end;
|
||||
|
||||
[Setup]
|
||||
49
dist/inno/scripts/products/winversion.iss
vendored
Normal file
49
dist/inno/scripts/products/winversion.iss
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
[Code]
|
||||
var
|
||||
WindowsVersion: TWindowsVersion;
|
||||
|
||||
procedure initwinversion();
|
||||
begin
|
||||
GetWindowsVersionEx(WindowsVersion);
|
||||
end;
|
||||
|
||||
function exactwinversion(MajorVersion, MinorVersion: integer): boolean;
|
||||
begin
|
||||
Result := (WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor = MinorVersion);
|
||||
end;
|
||||
|
||||
function minwinversion(MajorVersion, MinorVersion: integer): boolean;
|
||||
begin
|
||||
Result := (WindowsVersion.Major > MajorVersion) or ((WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor >= MinorVersion));
|
||||
end;
|
||||
|
||||
function maxwinversion(MajorVersion, MinorVersion: integer): boolean;
|
||||
begin
|
||||
Result := (WindowsVersion.Major < MajorVersion) or ((WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor <= MinorVersion));
|
||||
end;
|
||||
|
||||
function exactwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean;
|
||||
begin
|
||||
if exactwinversion(MajorVersion, MinorVersion) then
|
||||
Result := WindowsVersion.ServicePackMajor = SpVersion
|
||||
else
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
function minwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean;
|
||||
begin
|
||||
if exactwinversion(MajorVersion, MinorVersion) then
|
||||
Result := WindowsVersion.ServicePackMajor >= SpVersion
|
||||
else
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
function maxwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean;
|
||||
begin
|
||||
if exactwinversion(MajorVersion, MinorVersion) then
|
||||
Result := WindowsVersion.ServicePackMajor <= SpVersion
|
||||
else
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
[Setup]
|
||||
@@ -4,28 +4,28 @@
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Synergy</string>
|
||||
<string>Barrier</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>synergy</string>
|
||||
<string>barrier.sh</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Synergy.icns</string>
|
||||
<string>Barrier.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>synergy</string>
|
||||
<string>barrier</string>
|
||||
<!-- TODO: Fix this in v2.0 //-->
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Synergy</string>
|
||||
<string>Barrier</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>SYN1</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>@SYNERGY_VERSION@</string>
|
||||
<string>@BARRIER_VERSION@</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>@SYNERGY_VERSION@</string>
|
||||
<string>@BARRIER_VERSION@</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>© 2012-2016, Symless Ltd</string>
|
||||
<string>© 2018 Debauchee Open Source Group</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.9.0</string>
|
||||
</dict>
|
||||
BIN
dist/macos/bundle/Barrier.app/Contents/Resources/Barrier.icns
vendored
Normal file
BIN
dist/macos/bundle/Barrier.app/Contents/Resources/Barrier.icns
vendored
Normal file
Binary file not shown.
Binary file not shown.
82
dist/macos/bundle/build_installer.sh.in
vendored
Executable file
82
dist/macos/bundle/build_installer.sh.in
vendored
Executable file
@@ -0,0 +1,82 @@
|
||||
#!/bin/sh
|
||||
|
||||
# change this to rename the installer package
|
||||
B_DMG="Barrier-@BARRIER_VERSION@.dmg"
|
||||
|
||||
cd @CMAKE_CURRENT_SOURCE_DIR@/build/bundle || exit 1
|
||||
|
||||
B_REREF_SCRIPT=@CMAKE_CURRENT_SOURCE_DIR@/build/bundle/reref_dylibs.sh
|
||||
if [ ! -x $B_REREF_SCRIPT ]; then
|
||||
echo Missing script: $B_REREF_SCRIPT
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# remove any old copies so there's no confusion about whether this
|
||||
# process completes successfully or not
|
||||
rm -rf temp.dmg $B_DMG
|
||||
|
||||
cd Barrier.app/Contents 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo Please make sure that the build completed successfully
|
||||
echo before trying to create the installer.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# MacOS folder holds the executables, non-system libraries,
|
||||
# and the startup script
|
||||
rm -rf MacOS
|
||||
mkdir MacOS || exit 1
|
||||
cd MacOS || exit 1
|
||||
|
||||
# copy all executables
|
||||
cp @CMAKE_RUNTIME_OUTPUT_DIRECTORY@/* . || exit 1
|
||||
|
||||
# copy the qt platform plugin
|
||||
# TODO: this is hacky and will probably break if there is more than one qt
|
||||
# version installed. need a better way to find this library
|
||||
B_COCOA=$(find /usr/local/Cellar/qt -type f -name libqcocoa.dylib | head -1)
|
||||
if [ "x$B_COCOA" = "x" ]; then
|
||||
B_COCOA=$(find /opt/local/libexec/qt5/plugins -type f -name libqcocoa.dylib | head -1)
|
||||
fi
|
||||
if [ "x$B_COCOA" = "x" ]; then
|
||||
echo "Could not find cocoa platform plugin"
|
||||
exit 1
|
||||
fi
|
||||
mkdir platforms
|
||||
cp $B_COCOA platforms/ || exit 1
|
||||
|
||||
# make sure we can r/w all these binaries
|
||||
chmod -R u+rw * || exit 1
|
||||
|
||||
# only one executable (barrier) needs non-system libraries although it's
|
||||
# libraries can call each other. use a recursive script to handle the
|
||||
# re-referencing
|
||||
$B_REREF_SCRIPT barrier || exit 1
|
||||
# the cocoa platform plugin also needs to know where to find the qt libraries.
|
||||
# because it exists in a subdirectory we append ../ to the relative path of the
|
||||
# libraries in its metadata
|
||||
$B_REREF_SCRIPT platforms/libqcocoa.dylib ../ || exit 1
|
||||
|
||||
# create a startup script that will change to the binary directory
|
||||
# before starting barrier
|
||||
printf "%s\n" "#!/bin/sh" "cd \$(dirname \$0)" "exec ./barrier" > barrier.sh
|
||||
chmod +x barrier.sh
|
||||
|
||||
echo "Barrier.app created successfully"
|
||||
|
||||
# sanity check so we don't distribute a dmg with debug symbols
|
||||
if [ "@CMAKE_BUILD_TYPE@" != "Release" ]; then
|
||||
echo "dmg only created for Release builds"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# create the DMG to be distributed in build/bundle
|
||||
cd ../../..
|
||||
hdiutil create -size 64m -fs HFS+ -volname "Barrier" temp.dmg || exit 1
|
||||
hdiutil attach temp.dmg -mountpoint mnt || exit 1
|
||||
cp -r Barrier.app mnt/ || exit 1
|
||||
hdiutil detach mnt || exit 1
|
||||
hdiutil convert temp.dmg -format UDZO -o $B_DMG || exit 1
|
||||
rm temp.dmg
|
||||
|
||||
echo "dmg $B_DMB created successfully"
|
||||
43
dist/macos/bundle/reref_dylibs.sh
vendored
Executable file
43
dist/macos/bundle/reref_dylibs.sh
vendored
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $1 = binary (program or dylib)
|
||||
B_TARGET=$1
|
||||
if [ "x$B_TARGET" = "x" ]; then
|
||||
echo Which binary needs to be re-referenced?
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $(dirname $B_TARGET) || exit 1
|
||||
|
||||
# where to find non-system libraries relative to target's directory.
|
||||
# the vast majority of the time this should be empty
|
||||
B_REL_PATH=$2
|
||||
|
||||
# we're in target's directory now. trim off the path
|
||||
B_TARGET=$(basename $B_TARGET)
|
||||
|
||||
# get a list of non-system libraries and make local copies
|
||||
B_LIBS=$(otool -XL $B_TARGET | awk '{ print $1 }' | grep -Ev '^(/usr/lib|/System)')
|
||||
[ $? -ne 0 ] && exit 1
|
||||
for B_LIB in $B_LIBS; do
|
||||
B_LIB_NAME=$(basename $B_LIB)
|
||||
# otool reports barrier as "barrier:" which fails self-reference test below
|
||||
B_LIB_NAME=${B_LIB_NAME//:}
|
||||
|
||||
# ignore self-references
|
||||
[ "$B_TARGET" = "$B_LIB_NAME" ] && continue
|
||||
|
||||
B_DST=${B_REL_PATH}${B_LIB_NAME}
|
||||
if [ ! -e $B_DST ]; then
|
||||
cp $B_LIB $B_DST || exit 1
|
||||
chmod u+rw $B_DST || exit 1
|
||||
# recursively call this script on libraries purposefully not passing
|
||||
# $B_REL_PATH so that it is only used explicitly
|
||||
$0 $B_DST
|
||||
fi
|
||||
|
||||
# adjust the target's metadata to point to the local copy
|
||||
# rather than the system-wide copy which would only exist on
|
||||
# a development machine
|
||||
install_name_tool -change $B_LIB @loader_path/$B_DST $B_TARGET || exit 1
|
||||
done
|
||||
105
dist/rpm/barrier.spec.in
vendored
Normal file
105
dist/rpm/barrier.spec.in
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
%global barrier_revision @BARRIER_REVISION@
|
||||
Summary: Keyboard and mouse sharing solution
|
||||
Name: barrier
|
||||
Version: @BARRIER_VERSION@
|
||||
Release: @BARRIER_BUILD_NUMBER@%{?dist}
|
||||
License: GPLv2
|
||||
Group: System Environment/Daemons
|
||||
URL: https://github.com/debauchee/barrier
|
||||
Source0: https://github.com/debauchee/barrier/archive/v%{version}.tar.gz
|
||||
|
||||
BuildRequires: cmake3
|
||||
BuildRequires: avahi-compat-libdns_sd-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libXtst-devel
|
||||
BuildRequires: qt5-qtbase-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: openssl-devel
|
||||
|
||||
%description
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
|
||||
|
||||
%build
|
||||
%{cmake3} -DSYNERGY_VERSION_STAGE:STRING=@BARRIER_VERSION_STAGE@ -DSYNERGY_REVISION:STRING=%{barrier_revision} .
|
||||
make %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
install -D -p -m 0755 bin/barrier %{buildroot}%{_bindir}/barrier
|
||||
install -D -p -m 0755 bin/barrierc %{buildroot}%{_bindir}/barrierc
|
||||
install -D -p -m 0755 bin/barriers %{buildroot}%{_bindir}/barriers
|
||||
install -D -p -m 0644 doc/barrierc.1 %{buildroot}%{_mandir}/man1/barrierc.1
|
||||
install -D -p -m 0644 doc/barriers.1 %{buildroot}%{_mandir}/man1/barriers.1
|
||||
install -D -p -m 0644 res/barrier.desktop %{buildroot}%{_datadir}/applications/barrier.desktop
|
||||
install -D -p -m 0644 res/barrier.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/barrier.svg
|
||||
|
||||
cd %{buildroot}%{_bindir}
|
||||
|
||||
mkdir -p %{buildroot}%{_datadir}/metainfo
|
||||
## Write AppStream
|
||||
cat <<END> %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2018 Ding-Yi Chen <dchen@redhat.com> -->
|
||||
<component type="desktop-application">
|
||||
<id>%{name}</id>
|
||||
<metadata_license>FSFAP</metadata_license>
|
||||
<project_license>GPLv2</project_license>
|
||||
<name>barrier</name>
|
||||
<summary>Share mouse and keyboard between multiple computers over the network</summary>
|
||||
|
||||
<description>
|
||||
<p>
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
</p>
|
||||
</description>
|
||||
|
||||
<launchable type="desktop-id">%{name}.desktop</launchable>
|
||||
|
||||
<url type="homepage">https://github.com/debauchee/barrier</url>
|
||||
|
||||
<provides>
|
||||
<binary>barrier</binary>
|
||||
<binary>barrierc</binary>
|
||||
<binary>barriers</binary>
|
||||
</provides>
|
||||
|
||||
<releases>
|
||||
<release version="%{version}" date="2019-03-21" />
|
||||
</releases>
|
||||
</component>
|
||||
END
|
||||
|
||||
desktop-file-install --delete-original \
|
||||
--dir %{buildroot}%{_datadir}/applications \
|
||||
--set-icon=%{_datadir}/icons/hicolor/scalable/apps/barrier.svg \
|
||||
%{buildroot}%{_datadir}/applications/barrier.desktop
|
||||
|
||||
desktop-file-validate %{buildroot}/%{_datadir}/applications/barrier.desktop
|
||||
|
||||
%files
|
||||
# None of the documentation files are actually useful here, they all point to
|
||||
# the online website, so include just one, the README
|
||||
%doc LICENSE ChangeLog res/Readme.txt doc/barrier.conf.example*
|
||||
%{_bindir}/barrier
|
||||
%{_bindir}/barrierc
|
||||
%{_bindir}/barriers
|
||||
%{_datadir}/icons/hicolor/scalable/apps/barrier.svg
|
||||
%{_datadir}/applications/barrier.desktop
|
||||
%{_datadir}/metainfo/%{name}.appdata.xml
|
||||
%{_mandir}/man1/barrierc.1*
|
||||
%{_mandir}/man1/barriers.1*
|
||||
|
||||
%changelog
|
||||
* Thu Mar 21 2019 wendall911 <wendallc@83864.com>
|
||||
- Actual working spec file for Fedora
|
||||
|
||||
* Sat Jan 27 2018 Debauchee <todo@mail.com>
|
||||
- Initial version of the package
|
||||
|
||||
27
dist/rpm/synergy.spec.in
vendored
27
dist/rpm/synergy.spec.in
vendored
@@ -1,27 +0,0 @@
|
||||
Name: synergy
|
||||
Version: @SYNERGY_VERSION@
|
||||
Summary: Keyboard and mouse sharing solution
|
||||
Group: Applications/Productivity
|
||||
URL: https://symless.com/synergy
|
||||
Source: https://symless.com/synergy/downloads
|
||||
Vendor: Symless
|
||||
Packager: Symless <engineering@symless.com>
|
||||
License: GPLv2
|
||||
Release: @SYNERGY_BUILD_NUMBER@@SYNERGY_SNAPSHOT_INFO@%{?dist}
|
||||
|
||||
%description
|
||||
Synergy allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
|
||||
%files
|
||||
%defattr(755,root,root,-)
|
||||
%{_bindir}/synergy
|
||||
%{_bindir}/synergyc
|
||||
%{_bindir}/synergys
|
||||
%{_bindir}/syntool
|
||||
%attr(644,-,-) %{_datarootdir}/applications/synergy.desktop
|
||||
%attr(644,-,-) %{_datarootdir}/icons/hicolor/scalable/apps/synergy.svg
|
||||
|
||||
%changelog
|
||||
* Wed Apr 26 2017 Symless <engineering@symless.com>
|
||||
- Initial version of the package
|
||||
2
dist/wix/Synergy.sln → dist/wix/Barrier.sln
vendored
2
dist/wix/Synergy.sln → dist/wix/Barrier.sln
vendored
@@ -2,7 +2,7 @@
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Synergy", "Synergy.wixproj", "{D4BA9F39-6A35-4C8F-9CB2-67FCBE5CAB17}"
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Barrier", "Barrier.wixproj", "{D4BA9F39-6A35-4C8F-9CB2-67FCBE5CAB17}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -4,7 +4,7 @@
|
||||
<ProductVersion>3.10</ProductVersion>
|
||||
<ProjectGuid>{d4ba9f39-6a35-4c8f-9cb2-67fcbe5cab17}</ProjectGuid>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputName>Synergy</OutputName>
|
||||
<OutputName>Barrier</OutputName>
|
||||
<OutputType>Package</OutputType>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
16
dist/wix/Include.wxi.in
vendored
16
dist/wix/Include.wxi.in
vendored
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Include>
|
||||
<?define Name="Synergy" ?>
|
||||
<?define Version="@SYNERGY_VERSION@" ?>
|
||||
<?define QtVersion="5.9.3" ?> <!-- TODO: Configure this externally //-->
|
||||
<?define Author="Symless Ltd" ?>
|
||||
<?define Name="Barrier" ?>
|
||||
<?define Version="@BARRIER_WIX_VERSION@" ?>
|
||||
<?define QtVersion="@QT_VERSION@" ?>
|
||||
<?define Author="Debauchee Open Source Group" ?>
|
||||
<?define BinPath="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/$(var.Configuration)" ?>
|
||||
<?define ResPath="@CMAKE_CURRENT_SOURCE_DIR@/res" ?>
|
||||
<?define ExtPath="@CMAKE_CURRENT_SOURCE_DIR@/ext" ?>
|
||||
@@ -11,19 +11,15 @@
|
||||
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
|
||||
<?define PlatformSimpleName="64-bit" ?>
|
||||
<?define UpgradeGuid="E8A4FA54-14B9-4FD1-8E00-7BC46555FDA0" ?>
|
||||
<?define QtPath="C:\Qt\$(var.QtVersion)\msvc2015_64" ?>
|
||||
<?define QtPath="@CMAKE_PREFIX_PATH@" ?>
|
||||
<?else ?>
|
||||
<?define ProgramFilesFolder="ProgramFilesFolder" ?>
|
||||
<?define PlatformSimpleName="32-bit" ?>
|
||||
<?define UpgradeGuid="BE0B9FD8-45E2-4A8E-A0D8-1F774D074A78" ?>
|
||||
<?define QtPath="C:\Qt\$(var.QtVersion)\msvc2015" ?>
|
||||
<?define QtPath="@CMAKE_PREFIX_PATH@" ?>
|
||||
<?endif ?>
|
||||
<?define QtBinPath="$(var.QtPath)\bin" ?>
|
||||
<?define QtPlatformPath="$(var.QtPath)\plugins\platforms" ?>
|
||||
<?define OpenSSLPath="$(var.ExtPath)\openssl\windows\$(var.Platform)" ?>
|
||||
<?define OpenSSLBinPath="$(var.OpenSSLPath)\bin" ?>
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
<?define DebugCRT="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC140_DebugCRT_$(var.Platform).msm" ?>
|
||||
<?endif ?>
|
||||
<?define CRT="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC140_CRT_$(var.Platform).msm" ?>
|
||||
</Include>
|
||||
|
||||
50
dist/wix/Product.wxs
vendored
50
dist/wix/Product.wxs
vendored
@@ -12,37 +12,25 @@
|
||||
</Upgrade>
|
||||
<Feature Id="ProductFeature" Title="$(var.Name)">
|
||||
<ComponentGroupRef Id="ProductComponents"/>
|
||||
<ComponentGroupRef Id="OpenSSLComponents"/>
|
||||
<ComponentGroupRef Id="ProductQtPluginComponents"/>
|
||||
<MergeRef Id="CRT"/>
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
<MergeRef Id="DebugCRT"/>
|
||||
<?endif ?>
|
||||
<ComponentRef Id="RegistryEntries"/>
|
||||
</Feature>
|
||||
<DirectoryRef Id="TARGETDIR">
|
||||
<Component Guid="7CF3564D-1F8E-4D3D-9781-E1EE22D5BD67" Id="RegistryEntries">
|
||||
<RegistryKey ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" Root="HKLM">
|
||||
<RegistryValue Name="[INSTALLFOLDER]synergys.exe" Type="string" Value="~ HIGHDPIAWARE WIN7RTM"/>
|
||||
<RegistryValue Name="[INSTALLFOLDER]barriers.exe" Type="string" Value="~ HIGHDPIAWARE WIN7RTM"/>
|
||||
</RegistryKey>
|
||||
<!-- Windows 8 and later only -->
|
||||
<Condition><![CDATA[Installed OR (VersionNT >= 602)]]></Condition>
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
<Icon Id="synergy.ico" SourceFile="$(var.ResPath)/synergy.ico"/>
|
||||
<Icon Id="barrier.ico" SourceFile="$(var.ResPath)/barrier.ico"/>
|
||||
<WixVariable Id="WixUILicenseRtf" Value="$(var.ResPath)\License.rtf"/>
|
||||
<WixVariable Id="WixUIBannerBmp" Value="$(var.ResPath)\banner.bmp"/>
|
||||
<WixVariable Id="WixUIDialogBmp" Value="$(var.ResPath)\dialog.bmp"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="synergy.ico"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="barrier.ico"/>
|
||||
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
|
||||
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
|
||||
<Property Id="LEGACY_UNINSTALL_EXISTS">
|
||||
<RegistrySearch Id="LegacyRegistrySearch" Key="SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" Name="UninstallString" Root="HKLM" Type="file" Win64="no">
|
||||
<FileSearch Id="LegacyFileSearch" Name="uninstall.exe"/>
|
||||
</RegistrySearch>
|
||||
</Property>
|
||||
<Condition Message="An existing installation of $(var.Name) was detected, please uninstall it before continuing.">NOT LEGACY_UNINSTALL_EXISTS
|
||||
</Condition>
|
||||
<CustomAction ExeCommand="" FileKey="GuiProgram" Id="StartGui" Return="asyncNoWait"/>
|
||||
<UI>
|
||||
<Publish Control="Finish" Dialog="ExitDialog" Event="DoAction" Value="StartGui">NOT Installed</Publish>
|
||||
@@ -52,10 +40,6 @@
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="$(var.ProgramFilesFolder)">
|
||||
<Directory Id="INSTALLFOLDER" Name="$(var.Name)">
|
||||
<Merge DiskId="1" Id="CRT" Language="0" SourceFile="$(var.CRT)"/>
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
<Merge DiskId="1" Id="DebugCRT" Language="0" SourceFile="$(var.DebugCRT)"/>
|
||||
<?endif ?>
|
||||
<Directory Id="OpenSSLDir" Name="OpenSSL"/>
|
||||
<Directory Id="PlatformsDir" Name="Platforms"/>
|
||||
</Directory>
|
||||
@@ -66,23 +50,23 @@
|
||||
<Fragment>
|
||||
<ComponentGroup Directory="INSTALLFOLDER" Id="ProductComponents">
|
||||
<Component Guid="EC9AD3B0-277C-4157-B5C8-5FD5B6A5F4AD" Id="Core">
|
||||
<File KeyPath="yes" Source="$(var.BinPath)/synergyd.exe"/>
|
||||
<ServiceInstall Description="Controls the $(var.Name) foreground processes." DisplayName="$(var.Name)" ErrorControl="normal" Id="ServiceInstall" Name="Synergy" Start="auto" Type="ownProcess">
|
||||
<File KeyPath="yes" Source="$(var.BinPath)/barrierd.exe"/>
|
||||
<ServiceInstall Description="Controls the $(var.Name) foreground processes." DisplayName="$(var.Name)" ErrorControl="normal" Id="ServiceInstall" Name="Barrier" Start="auto" Type="ownProcess">
|
||||
<util:ServiceConfig FirstFailureActionType="restart" ResetPeriodInDays="1" RestartServiceDelayInSeconds="1" SecondFailureActionType="restart" ThirdFailureActionType="restart"/>
|
||||
</ServiceInstall>
|
||||
<ServiceControl Id="ServiceControl" Name="Synergy" Remove="uninstall" Start="install" Stop="both"/>
|
||||
<File Source="$(var.BinPath)/synergys.exe">
|
||||
<ServiceControl Id="ServiceControl" Name="Barrier" Remove="uninstall" Start="install" Stop="both"/>
|
||||
<File Source="$(var.BinPath)/barriers.exe">
|
||||
<fire:FirewallException Id="ServerFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
|
||||
</File>
|
||||
<File Source="$(var.BinPath)/synergyc.exe"/>
|
||||
<File Source="$(var.BinPath)/syntool.exe"/>
|
||||
<File Source="$(var.BinPath)/synwinhk.dll"/>
|
||||
<File Source="$(var.BinPath)/barrierc.exe"/>
|
||||
<File Source="$(var.OpenSSLBinPath)/libeay32.dll"/>
|
||||
<File Source="$(var.OpenSSLBinPath)/ssleay32.dll"/>
|
||||
<File Source="$(var.OpenSSLBinPath)/openssl.exe"/>
|
||||
<File Source="$(var.ResPath)/openssl/barrier.conf"/>
|
||||
</Component>
|
||||
<Component Guid="BAC8149B-6287-45BF-9C27-43D71ED40214" Id="Gui">
|
||||
<File Id="GuiProgram" KeyPath="yes" Source="$(var.BinPath)/synergy.exe">
|
||||
<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="synergy.ico" Id="GuiShortcut" Name="$(var.Name)"/>
|
||||
<File Id="GuiProgram" KeyPath="yes" Source="$(var.BinPath)/barrier.exe">
|
||||
<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="barrier.ico" Id="GuiShortcut" Name="$(var.Name)"/>
|
||||
<fire:FirewallException Id="GuiFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
|
||||
</File>
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
@@ -115,13 +99,5 @@
|
||||
<?endif ?>
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
<ComponentGroup Directory="OpenSSLDir" Id="OpenSSLComponents">
|
||||
<Component Guid="92648F77-65A6-4B16-AC59-A1F37BD341B1" Id="OpenSSL">
|
||||
<File Id="OpenSSLDll1" Source="$(var.OpenSSLBinPath)/libeay32.dll"/>
|
||||
<File Id="OpenSSLDll2" Source="$(var.OpenSSLBinPath)/ssleay32.dll"/>
|
||||
<File Source="$(var.OpenSSLBinPath)/openssl.exe"/>
|
||||
<File Source="$(var.ResPath)/openssl/synergy.conf"/>
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
</Wix>
|
||||
</Wix>
|
||||
|
||||
7
doc/MacReadme.txt
Executable file → Normal file
7
doc/MacReadme.txt
Executable file → Normal file
@@ -5,14 +5,11 @@ To install on Mac OS X with the .zip distribution (first seen in 1.3.6) you must
|
||||
|
||||
1. Extract the zip file to any location (usually double click will do this)
|
||||
2. Open Terminal, and cd to the extracted directory (e.g. /Users/my-name/Downloads/extracted-dir/)
|
||||
3. Copy the binaries to /usr/bin using: sudo cp synergy* /usr/bin
|
||||
4. Correct the permissions and ownership: sudo chown root:wheel /usr/bin/synergy*; sudo chmod 555 /usr/bin/synergy*
|
||||
3. Copy the binaries to /usr/bin using: sudo cp barrier* /usr/bin
|
||||
4. Correct the permissions and ownership: sudo chown root:wheel /usr/bin/barrier*; sudo chmod 555 /usr/bin/barrier*
|
||||
|
||||
Alternatively, you can copy the binaries as root. How to enable the root user in Mac OS X:
|
||||
http://support.apple.com/en-us/ht1528
|
||||
|
||||
Once the binaries have been copied to /usr/bin, you should follow the configuration guide:
|
||||
http://synergy2.sourceforge.net/configuration.html
|
||||
|
||||
If you have any problems, see the [[Support]] page:
|
||||
http://symless.com/help/
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -73,7 +73,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -112,7 +112,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -151,7 +151,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -190,7 +190,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -229,6 +229,6 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
|
||||
5
doc/UpdateManpages.txt
Normal file
5
doc/UpdateManpages.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
To recreate the barrierc manpage use a command like:
|
||||
help2man -N --output=barrierc.1 --name='Barrier Keyboard/Mouse Client' /path/to/barrierc
|
||||
|
||||
And for barriers:
|
||||
help2man -N --output=barriers.1 --name='Barrier Keyboard/Mouse Server' /path/to/barriers
|
||||
@@ -1,4 +1,4 @@
|
||||
# sample synergy configuration file
|
||||
# sample barrier configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
@@ -1,4 +1,4 @@
|
||||
# sample synergy configuration file
|
||||
# sample barrier configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
@@ -1,4 +1,4 @@
|
||||
# sample synergy configuration file
|
||||
# sample barrier configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
73
doc/barrierc.1
Normal file
73
doc/barrierc.1
Normal file
@@ -0,0 +1,73 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
||||
.TH BARRIERC "1" "May 2018" "barrierc 2.1.0-snapshot" "User Commands"
|
||||
.SH NAME
|
||||
barrierc \- Barrier Keyboard/Mouse Client
|
||||
.SH SYNOPSIS
|
||||
.B barrierc
|
||||
[\fI\,--yscroll <delta>\/\fR] [\fI\,--display <display>\/\fR] [\fI\,--no-xinitthreads\/\fR] [\fI\,--daemon|--no-daemon\/\fR] [\fI\,--name <screen-name>\/\fR] [\fI\,--restart|--no-restart\/\fR] [\fI\,--debug <level>\/\fR] \fI\,<server-address>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Start the barrier client and connect to a remote server component.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUG1, DEBUG2.
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.TP
|
||||
\fB\-\-restart\fR
|
||||
restart the server automatically if it fails. (*)
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-\-no\-tray\fR
|
||||
disable the system tray icon.
|
||||
.TP
|
||||
\fB\-\-enable\-drag\-drop\fR
|
||||
enable file drag & drop.
|
||||
.TP
|
||||
\fB\-\-enable\-crypto\fR
|
||||
enable the crypto (ssl) plugin.
|
||||
.TP
|
||||
\fB\-\-display\fR <display>
|
||||
connect to the X server at <display>
|
||||
.TP
|
||||
\fB\-\-no\-xinitthreads\fR
|
||||
do not call XInitThreads()
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.TP
|
||||
\fB\-\-daemon\fR
|
||||
run as a daemon. (*)
|
||||
.TP
|
||||
\fB\-\-yscroll\fR <delta>
|
||||
defines the vertical scrolling delta, which is
|
||||
120 by default.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
Default options are marked with a *
|
||||
.PP
|
||||
The server address is of the form: [<hostname>][:<port>]. The hostname
|
||||
must be the address or hostname of the server. Placing brackets around
|
||||
an IPv6 address is required when also specifying a port number and
|
||||
optional otherwise. The default port number is 24800.
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2018 Debauchee Open Source Group
|
||||
.br
|
||||
Copyright \(co 2012\-2016 Symless Ltd.
|
||||
.br
|
||||
Copyright \(co 2008\-2014 Nick Bolton
|
||||
.br
|
||||
Copyright \(co 2002\-2014 Chris Schoeneman
|
||||
82
doc/barriers.1
Normal file
82
doc/barriers.1
Normal file
@@ -0,0 +1,82 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
||||
.TH BARRIERS "1" "May 2018" "barriers 2.1.0-snapshot" "User Commands"
|
||||
.SH NAME
|
||||
barriers \- Barrier Keyboard/Mouse Server
|
||||
.SH SYNOPSIS
|
||||
.B barriers
|
||||
[\fI\,--address <address>\/\fR] [\fI\,--config <pathname>\/\fR] [\fI\,--display <display>\/\fR] [\fI\,--no-xinitthreads\/\fR] [\fI\,--daemon|--no-daemon\/\fR] [\fI\,--name <screen-name>\/\fR] [\fI\,--restart|--no-restart\/\fR] [\fI\,--debug <level>\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Start the barrier server component.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-a\fR, \fB\-\-address\fR <address>
|
||||
listen for clients on the given address.
|
||||
.TP
|
||||
\fB\-c\fR, \fB\-\-config\fR <pathname>
|
||||
use the named configuration file instead.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUG1, DEBUG2.
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.TP
|
||||
\fB\-\-restart\fR
|
||||
restart the server automatically if it fails. (*)
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-\-no\-tray\fR
|
||||
disable the system tray icon.
|
||||
.TP
|
||||
\fB\-\-enable\-drag\-drop\fR
|
||||
enable file drag & drop.
|
||||
.TP
|
||||
\fB\-\-enable\-crypto\fR
|
||||
enable the crypto (ssl) plugin.
|
||||
.TP
|
||||
\fB\-\-display\fR <display>
|
||||
connect to the X server at <display>
|
||||
.TP
|
||||
\fB\-\-no\-xinitthreads\fR
|
||||
do not call XInitThreads()
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.TP
|
||||
\fB\-\-daemon\fR
|
||||
run as a daemon. (*)
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
Default options are marked with a *
|
||||
.PP
|
||||
The argument for \fB\-\-address\fR is of the form: [<hostname>][:<port>]. The
|
||||
hostname must be the address or hostname of an interface on the system.
|
||||
Placing brackets around an IPv6 address is required when also specifying
|
||||
a port number and optional otherwise. The default is to listen on all
|
||||
interfaces using port number 24800.
|
||||
.PP
|
||||
If no configuration file pathname is provided then the first of the
|
||||
following to load successfully sets the configuration:
|
||||
.IP
|
||||
$HOME/.local/share/barrier/barrier.conf
|
||||
\fI\,/etc/barrier.conf\/\fP
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2018 Debauchee Open Source Group
|
||||
.br
|
||||
Copyright \(co 2012\-2016 Symless Ltd.
|
||||
.br
|
||||
Copyright \(co 2008\-2014 Nick Bolton
|
||||
.br
|
||||
Copyright \(co 2002\-2014 Chris Schoeneman
|
||||
@@ -2,16 +2,16 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start synergy client automatically. Make sure you change the IP below. -->
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier client automatically. Make sure you change the IP below. -->
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>org.symless.com.synergyc.plist</string>
|
||||
<string>org.debauchee.com.barrierc.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/synergyc</string>
|
||||
<!-- Replace this IP with the IP of your synergys server -->
|
||||
<string>/usr/bin/barrierc</string>
|
||||
<!-- Replace this IP with the IP of your barriers server -->
|
||||
<string>192.168.0.2</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
@@ -2,19 +2,19 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start synergy server automatically. Make sure you change configuration file below -->
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier server automatically. Make sure you change configuration file below -->
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>org.symless.com.synergys.plist</string>
|
||||
<string>org.debauchee.com.barriers.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/synergys</string>
|
||||
<string>/usr/bin/barriers</string>
|
||||
<string>--no-daemon</string>
|
||||
<string>--config</string>
|
||||
<!-- Replace this path with the path to your synergy configuration -->
|
||||
<string>/Users/snorp/.synergy.conf</string>
|
||||
<!-- Replace this path with the path to your barrier configuration -->
|
||||
<string>/Users/snorp/.barrier.conf</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
@@ -1,47 +0,0 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2.
|
||||
.TH SYNERGYC "1" "June 2010" "synergyc 1.5.0, protocol version 1.3" "User Commands"
|
||||
.SH NAME
|
||||
synergyc \- manual page for synergyc 1.5.0, protocol version 1.3
|
||||
.SH SYNOPSIS
|
||||
.B synergyc
|
||||
[\fI--yscroll <delta>\fR] [\fI--daemon|--no-daemon\fR] [\fI--name <screen-name>\fR] [\fI--restart|--no-restart\fR] [\fI--debug <level>\fR] \fI<server-address>\fR
|
||||
.SH DESCRIPTION
|
||||
Connect to a synergy mouse/keyboard sharing server.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUGn (1\-5).
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.PP
|
||||
* \fB\-\-restart\fR restart the server automatically if it fails.
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.PP
|
||||
* \fB\-\-daemon\fR run as a daemon.
|
||||
.TP
|
||||
\fB\-\-yscroll\fR <delta>
|
||||
defines the vertical scrolling delta, which is
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
* marks defaults.
|
||||
.PP
|
||||
The server address is of the form: [<hostname>][:<port>]. The hostname
|
||||
must be the address or hostname of the server. The port overrides the
|
||||
default port, 24800.
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2010 Chris Schoeneman, Nick Bolton, Sorin Sbarnea
|
||||
@@ -1,57 +0,0 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2.
|
||||
.TH SYNERGYS "1" "June 2010" "synergys 1.5.0, protocol version 1.3" "User Commands"
|
||||
.SH NAME
|
||||
synergys \- manual page for synergys 1.5.0, protocol version 1.3
|
||||
.SH SYNOPSIS
|
||||
.B synergys
|
||||
[\fI--address <address>\fR] [\fI--config <pathname>\fR] [\fI--daemon|--no-daemon\fR] [\fI--name <screen-name>\fR] [\fI--restart|--no-restart\fR] [\fI--debug <level>\fR]
|
||||
.SH DESCRIPTION
|
||||
Start the synergy mouse/keyboard sharing server.
|
||||
.TP
|
||||
\fB\-a\fR, \fB\-\-address\fR <address>
|
||||
listen for clients on the given address.
|
||||
.TP
|
||||
\fB\-c\fR, \fB\-\-config\fR <pathname>
|
||||
use the named configuration file instead.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUGn (1\-5).
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.PP
|
||||
* \fB\-\-restart\fR restart the server automatically if it fails.
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.PP
|
||||
* \fB\-\-daemon\fR run as a daemon.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
* marks defaults.
|
||||
.PP
|
||||
The argument for \fB\-\-address\fR is of the form: [<hostname>][:<port>]. The
|
||||
hostname must be the address or hostname of an interface on the system.
|
||||
The default is to listen on all interfaces. The port overrides the
|
||||
default port, 24800.
|
||||
.PP
|
||||
If no configuration file pathname is provided then the first of the
|
||||
following to load successfully sets the configuration:
|
||||
.IP
|
||||
$HOME/.synergy.conf
|
||||
/etc/synergy.conf
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2010 Chris Schoeneman, Nick Bolton, Sorin Sbarnea
|
||||
2
ext/gmock/build-aux/config.guess
vendored
Normal file → Executable file
2
ext/gmock/build-aux/config.guess
vendored
Normal file → Executable file
@@ -461,7 +461,7 @@ EOF
|
||||
Motorola:*:4.3:PL8-*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
|
||||
Night_Hawk:*:*:PowerMAX_OS | Barrier:PowerMAX_OS:*:*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:Power_UNIX:*:*)
|
||||
|
||||
0
ext/gmock/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gmock/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gmock/build-aux/depcomp
Normal file → Executable file
0
ext/gmock/build-aux/depcomp
Normal file → Executable file
0
ext/gmock/build-aux/install-sh
Normal file → Executable file
0
ext/gmock/build-aux/install-sh
Normal file → Executable file
0
ext/gmock/build-aux/missing
Normal file → Executable file
0
ext/gmock/build-aux/missing
Normal file → Executable file
0
ext/gmock/configure
vendored
Normal file → Executable file
0
ext/gmock/configure
vendored
Normal file → Executable file
0
ext/gmock/scripts/fuse_gmock_files.py
Normal file → Executable file
0
ext/gmock/scripts/fuse_gmock_files.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/ast.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/ast.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/gmock_class.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/gmock_class.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/keywords.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/keywords.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/tokenize.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/tokenize.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/utils.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/utils.py
Normal file → Executable file
0
ext/gmock/scripts/generator/gmock_gen.py
Normal file → Executable file
0
ext/gmock/scripts/generator/gmock_gen.py
Normal file → Executable file
0
ext/gmock/scripts/gmock-config.in
Normal file → Executable file
0
ext/gmock/scripts/gmock-config.in
Normal file → Executable file
0
ext/gmock/test/gmock_leak_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_leak_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_output_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_output_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_test_utils.py
Normal file → Executable file
0
ext/gmock/test/gmock_test_utils.py
Normal file → Executable file
2
ext/gtest/build-aux/config.guess
vendored
Normal file → Executable file
2
ext/gtest/build-aux/config.guess
vendored
Normal file → Executable file
@@ -461,7 +461,7 @@ EOF
|
||||
Motorola:*:4.3:PL8-*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
|
||||
Night_Hawk:*:*:PowerMAX_OS | Barrier:PowerMAX_OS:*:*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:Power_UNIX:*:*)
|
||||
|
||||
0
ext/gtest/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gtest/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gtest/build-aux/depcomp
Normal file → Executable file
0
ext/gtest/build-aux/depcomp
Normal file → Executable file
0
ext/gtest/build-aux/install-sh
Normal file → Executable file
0
ext/gtest/build-aux/install-sh
Normal file → Executable file
0
ext/gtest/build-aux/missing
Normal file → Executable file
0
ext/gtest/build-aux/missing
Normal file → Executable file
0
ext/gtest/configure
vendored
Normal file → Executable file
0
ext/gtest/configure
vendored
Normal file → Executable file
0
ext/gtest/scripts/fuse_gtest_files.py
Normal file → Executable file
0
ext/gtest/scripts/fuse_gtest_files.py
Normal file → Executable file
0
ext/gtest/scripts/gen_gtest_pred_impl.py
Normal file → Executable file
0
ext/gtest/scripts/gen_gtest_pred_impl.py
Normal file → Executable file
0
ext/gtest/scripts/gtest-config.in
Normal file → Executable file
0
ext/gtest/scripts/gtest-config.in
Normal file → Executable file
0
ext/gtest/scripts/pump.py
Normal file → Executable file
0
ext/gtest/scripts/pump.py
Normal file → Executable file
0
ext/gtest/test/gtest_break_on_failure_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_break_on_failure_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_catch_exceptions_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_catch_exceptions_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_color_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_color_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_env_var_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_env_var_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_filter_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_filter_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_help_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_help_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_list_tests_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_list_tests_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_output_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_output_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_shuffle_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_shuffle_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_test_utils.py
Normal file → Executable file
0
ext/gtest/test/gtest_test_utils.py
Normal file → Executable file
0
ext/gtest/test/gtest_throw_on_failure_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_throw_on_failure_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_uninitialized_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_uninitialized_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_outfiles_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_outfiles_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_output_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_output_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_test_utils.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_test_utils.py
Normal file → Executable file
0
ext/gtest/xcode/Samples/FrameworkSample/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Samples/FrameworkSample/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Scripts/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Scripts/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Scripts/versiongenerate.py
Normal file → Executable file
0
ext/gtest/xcode/Scripts/versiongenerate.py
Normal file → Executable file
0
ext/openssl/windows/x64/bin/libeay32.dll
Normal file → Executable file
0
ext/openssl/windows/x64/bin/libeay32.dll
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user