Merge pull request #1626 from LMMS/cmake_tests

CMake: Change the way tests links lmms
This commit is contained in:
Lukas W
2015-01-15 16:13:49 +01:00
3 changed files with 48 additions and 13 deletions

View File

@@ -6,7 +6,10 @@ env:
- TARGET_OS=win64
before_install:
- if [ $TARGET_OS != linux ]; then sudo add-apt-repository ppa:tobydox/mingw -y; fi
# Travis only has CMake 2.8.7, we need >=2.8.8:
- if [ $TARGET_OS == linux ]; then sudo add-apt-repository ppa:kalakris/cmake -y; fi
- sudo apt-get update -qq
- if [ $TARGET_OS == linux ]; then sudo apt-get install -y cmake; fi
install:
- if [ $TARGET_OS != linux ]; then sudo apt-get install -y nsis cloog-isl libmpc2 mingw32; fi
- if [ $TARGET_OS != linux ]; then sudo apt-get install -y mingw32-x-qt mingw32-x-sdl mingw32-x-libvorbis mingw32-x-fluidsynth mingw32-x-stk mingw32-x-glib2 mingw32-x-portaudio mingw32-x-libsndfile mingw32-x-fftw mingw32-x-flac mingw32-x-fltk mingw32-x-libsamplerate mingw32-x-pkgconfig mingw32-x-binutils mingw32-x-gcc mingw32-x-runtime mingw32-x-libgig; fi

View File

@@ -64,17 +64,32 @@ ENDIF()
# Enable C++11
ADD_DEFINITIONS("-std=c++0x")
ADD_EXECUTABLE(lmms
core/main.cpp
${LMMS_SRCS}
${LMMS_INCLUDES}
${LMMS_UI_OUT}
${LMMS_ER_H}
"${WINRC}"
)
SET_TARGET_PROPERTIES(lmms PROPERTIES
ENABLE_EXPORTS ON
)
# ADD_LIBRARY's OBJECT is only supported in CMake >=2.8.8
IF(CMAKE_MAJOR_VERSION GREATER 2 OR
CMAKE_MINOR_VERSION GREATER 8 OR
CMAKE_PATCH_VERSION GREATER 7)
ADD_LIBRARY(lmmsobjs OBJECT
${LMMS_SRCS}
${LMMS_INCLUDES}
${LMMS_UI_OUT}
${LMMS_ER_H}
)
ADD_EXECUTABLE(lmms
core/main.cpp
$<TARGET_OBJECTS:lmmsobjs>
"${WINRC}"
)
ELSE()
ADD_EXECUTABLE(lmms
core/main.cpp
${LMMS_SRCS}
${LMMS_INCLUDES}
${LMMS_UI_OUT}
${LMMS_ER_H}
"${WINRC}"
)
ENDIF()
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${LMMS_UI_OUT} lmmsconfig.h lmms.1.gz")
@@ -82,7 +97,7 @@ IF(LMMS_BUILD_WIN32)
SET(EXTRA_LIBRARIES "-lwinmm")
ENDIF()
TARGET_LINK_LIBRARIES(lmms
SET(LMMS_REQUIRED_LIBS
${CMAKE_THREAD_LIBS_INIT}
${QT_LIBRARIES}
${ASOUND_LIBRARY}
@@ -95,6 +110,12 @@ TARGET_LINK_LIBRARIES(lmms
${SNDFILE_LIBRARIES}
${EXTRA_LIBRARIES}
)
# Expose required libs for tests binary
SET(LMMS_REQUIRED_LIBS ${LMMS_REQUIRED_LIBS} PARENT_SCOPE)
TARGET_LINK_LIBRARIES(lmms
${LMMS_REQUIRED_LIBS}
)
IF(QT5)
TARGET_LINK_LIBRARIES(lmms
@@ -138,6 +159,7 @@ ENDFOREACH(_item ${qm_targets})
IF(LMMS_BUILD_WIN32)
SET_TARGET_PROPERTIES(lmms PROPERTIES
LINK_FLAGS "${LINK_FLAGS} -mwindows"
ENABLE_EXPORTS ON
)
ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:lmms>")

View File

@@ -1,6 +1,14 @@
IF(CMAKE_MAJOR_VERSION LESS 2 OR
CMAKE_MINOR_VERSION LESS 8 OR
CMAKE_PATCH_VERSION LESS 8)
MESSAGE("-- Unit tests are only available in CMake >=2.8.8. You have ${CMAKE_VERSION}")
RETURN()
ENDIF()
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}")
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include")
INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
@@ -10,6 +18,8 @@ ADD_EXECUTABLE(tests
EXCLUDE_FROM_ALL
main.cpp
QTestSuite
$<TARGET_OBJECTS:lmmsobjs>
)
TARGET_LINK_LIBRARIES(tests ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY})
TARGET_LINK_LIBRARIES(tests lmms)
TARGET_LINK_LIBRARIES(tests ${LMMS_REQUIRED_LIBS})