Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@ cmake_minimum_required(VERSION 2.8.12)

project(PSMoveAPI)

# get rid of Visual Studio's default "Debug" and "Release" output directories
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR})

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
endif()

# Step into the subdirectories
include("src/CMakeLists.txt")
include("examples/CMakeLists.txt")
Expand Down
38 changes: 29 additions & 9 deletions bindings/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,30 @@ if(SWIG_FOUND)
endif()
set(INFO_BUILD_JAVA_BINDINGS "Yes")

add_custom_target(psmoveapi.jar ALL
COMMAND ${CMAKE_COMMAND} -E make_directory ${PSMOVEAPI_JAVA_PKG_DIR}
COMMAND cp *.java ${PSMOVEAPI_JAVA_PKG_DIR}/
COMMAND javac ${PSMOVEAPI_JAVA_PKG_DIR}/*.java
COMMAND jar cf psmoveapi.jar ${PSMOVEAPI_JAVA_PKG_DIR}/*.class
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Java bindings JAR archive"
)
# NOTE: We need a platform-independent copy command for the .java files, but neither the COMMAND
# nor CMake's "-E copy" support wildcards on Windows. We could probably whip up something
# more elegant which only makes the relevant line platform-dependent without copying all
# the other lines. But this simple branching is pretty robust and also works with older
# versions of CMake.
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
add_custom_target(psmoveapi.jar
COMMAND ${CMAKE_COMMAND} -E make_directory ${PSMOVEAPI_JAVA_PKG_DIR}
COMMAND ${CMAKE_CURRENT_LIST_DIR}/copy_java.bat ${PSMOVEAPI_JAVA_PKG_DIR}/
COMMAND javac ${PSMOVEAPI_JAVA_PKG_DIR}/*.java
COMMAND jar cf psmoveapi.jar ${PSMOVEAPI_JAVA_PKG_DIR}/*.class
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Java bindings JAR archive"
)
else()
add_custom_target(psmoveapi.jar
COMMAND ${CMAKE_COMMAND} -E make_directory ${PSMOVEAPI_JAVA_PKG_DIR}
COMMAND cp *.java ${PSMOVEAPI_JAVA_PKG_DIR}/
COMMAND javac ${PSMOVEAPI_JAVA_PKG_DIR}/*.java
COMMAND jar cf psmoveapi.jar ${PSMOVEAPI_JAVA_PKG_DIR}/*.class
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Java bindings JAR archive"
)
endif()

set(PSMOVEAPI_PROCESSING_DIR "${CMAKE_CURRENT_LIST_DIR}/processing/libraries/psmove")

Expand All @@ -69,8 +85,12 @@ if(SWIG_FOUND)
set(PSMOVEAPI_PAIRING_TOOL_NAME "psmove")
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(PSMOVEAPI_LIB_PLATFORM "windows")
set(PSMOVEAPI_NATIVE_LIB "libpsmove_java.dll")
set(PSMOVEAPI_NATIVE_LIB "psmove_java.dll")
set(PSMOVEAPI_PAIRING_TOOL_NAME "psmove.exe")

if(MINGW)
set(PSMOVEAPI_NATIVE_LIB "libpsmove_java.dll")
endif()
ELSE() # Linux
set(PSMOVEAPI_LIB_PLATFORM "linux")
set(PSMOVEAPI_NATIVE_LIB "libpsmove_java.so")
Expand Down
8 changes: 8 additions & 0 deletions bindings/copy_java.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
if "%~1"=="" (
echo Destination directory missing
exit /b 1
)

copy *.java "%~1"

exit /b 0
12 changes: 6 additions & 6 deletions scripts/build_package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -103,14 +103,14 @@ case "$BUILD_TYPE" in
WIN_ARCH=${BUILD_TYPE#windows-native-msvc-}
BUILDDIR="build-${WIN_ARCH}"
PLATFORM_BIN="
$BUILDDIR/Release/psmove.exe
$BUILDDIR/Release/test_tracker.exe
$BUILDDIR/psmove.exe
$BUILDDIR/test_tracker.exe
"
PLATFORM_LIB="
$BUILDDIR/Release/psmoveapi.dll
$BUILDDIR/Release/psmoveapi.lib
$BUILDDIR/Release/psmoveapi_tracker.dll
$BUILDDIR/Release/psmoveapi_tracker.lib
$BUILDDIR/psmoveapi.dll
$BUILDDIR/psmoveapi.lib
$BUILDDIR/psmoveapi_tracker.dll
$BUILDDIR/psmoveapi_tracker.lib
"
pkg_zipfile_7z

Expand Down