mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-03-11 01:45:20 +00:00
Removed old dlldefs.h and reoganized/fixed CMake-related code.
CMake changes are related to shared and static inking, adding the proper public "-DPROJECTM_STATIC_DEFINE" for the static library.
This commit is contained in:
@ -41,7 +41,6 @@ add_library(projectM_main OBJECT
|
||||
Common.hpp
|
||||
ConfigFile.cpp
|
||||
ConfigFile.h
|
||||
dlldefs.h
|
||||
event.h
|
||||
fatal.h
|
||||
fftsg.cpp
|
||||
@ -70,11 +69,8 @@ add_library(projectM_main OBJECT
|
||||
PresetLoader.cpp
|
||||
PresetLoader.hpp
|
||||
projectM.cpp
|
||||
projectM.h
|
||||
projectM.hpp
|
||||
projectM-opengl.h
|
||||
ProjectMCWrapper.cpp
|
||||
ProjectMCWrapper.hpp
|
||||
RandomNumberGenerators.hpp
|
||||
resource.h
|
||||
sdltoprojectM.h
|
||||
@ -90,7 +86,6 @@ add_library(projectM_main OBJECT
|
||||
|
||||
target_include_directories(projectM_main
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/libprojectM"
|
||||
"${CMAKE_SOURCE_DIR}/src"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Renderer"
|
||||
@ -107,11 +102,6 @@ target_link_libraries(projectM_main
|
||||
${PROJECTM_OPENGL_LIBRARIES}
|
||||
)
|
||||
|
||||
target_compile_options(projectM_main
|
||||
PRIVATE
|
||||
-DprojectM_main_EXPORTS
|
||||
)
|
||||
|
||||
include(GenerateExportHeader)
|
||||
|
||||
generate_export_header(projectM_main
|
||||
@ -120,147 +110,11 @@ generate_export_header(projectM_main
|
||||
)
|
||||
|
||||
if (ENABLE_STATIC_LIB)
|
||||
add_library(projectM_static STATIC
|
||||
# Xcode needs at least one source file, otherwise it won't create the static library.
|
||||
StaticLibDummy.cpp
|
||||
|
||||
$<TARGET_OBJECTS:projectM_main>
|
||||
$<TARGET_OBJECTS:MilkdropPresetFactory>
|
||||
$<TARGET_OBJECTS:NativePresetFactory>
|
||||
$<TARGET_OBJECTS:Renderer>
|
||||
$<TARGET_OBJECTS:hlslparser>
|
||||
$<TARGET_OBJECTS:SOIL2>
|
||||
$<$<PLATFORM_ID:Windows>:$<TARGET_OBJECTS:dlfcn>>
|
||||
)
|
||||
|
||||
set_target_properties(projectM_static PROPERTIES
|
||||
OUTPUT_NAME projectM
|
||||
EXPORT_NAME static
|
||||
FOLDER libprojectM
|
||||
)
|
||||
|
||||
target_include_directories(projectM_static
|
||||
PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include/libprojectM>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer/hlslparser/src>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MilkdropPresetFactory>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/NativePresetFactory>"
|
||||
"$<BUILD_INTERFACE:${MSVC_EXTRA_INCLUDE_DIR}>"
|
||||
"$<INSTALL_INTERFACE:${PROJECTM_INCLUDE_DIR}>"
|
||||
)
|
||||
|
||||
target_link_libraries(projectM_static
|
||||
PRIVATE
|
||||
GLM::GLM
|
||||
PUBLIC
|
||||
${PROJECTM_OPENGL_LIBRARIES}
|
||||
)
|
||||
|
||||
if(ENABLE_THREADING)
|
||||
target_link_libraries(projectM_static
|
||||
PUBLIC
|
||||
Threads::Threads
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ENABLE_LLVM)
|
||||
target_link_libraries(projectM_static
|
||||
PUBLIC
|
||||
LLVM::LLVM
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_link_libraries(projectM_static
|
||||
PUBLIC
|
||||
"-framework CoreFoundation"
|
||||
)
|
||||
endif()
|
||||
|
||||
install(TARGETS projectM_static
|
||||
EXPORT libprojectMTargets
|
||||
LIBRARY DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
RUNTIME DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
ARCHIVE DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
set(EXPORT_SHARED_LIB_TARGET projectM_static)
|
||||
include(libprojectM_static.cmake)
|
||||
endif()
|
||||
|
||||
if(ENABLE_SHARED_LIB)
|
||||
add_library(projectM_shared SHARED
|
||||
$<TARGET_OBJECTS:projectM_main>
|
||||
$<TARGET_OBJECTS:MilkdropPresetFactory>
|
||||
$<TARGET_OBJECTS:NativePresetFactory>
|
||||
$<TARGET_OBJECTS:Renderer>
|
||||
$<TARGET_OBJECTS:hlslparser>
|
||||
$<TARGET_OBJECTS:SOIL2>
|
||||
$<$<PLATFORM_ID:Windows>:$<TARGET_OBJECTS:dlfcn>>
|
||||
)
|
||||
|
||||
set_target_properties(projectM_shared PROPERTIES
|
||||
OUTPUT_NAME projectM
|
||||
VERSION "${PROJECTM_LIB_VERSION}"
|
||||
SOVERSION "${PROJECTM_SO_VERSION}"
|
||||
EXPORT_NAME shared
|
||||
FOLDER libprojectM
|
||||
)
|
||||
|
||||
target_include_directories(projectM_shared
|
||||
PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include/libprojectM>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer/hlslparser/src>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MilkdropPresetFactory>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/NativePresetFactory>"
|
||||
"$<BUILD_INTERFACE:${MSVC_EXTRA_INCLUDE_DIR}>"
|
||||
"$<INSTALL_INTERFACE:${PROJECTM_INCLUDE_DIR}>"
|
||||
)
|
||||
|
||||
target_link_libraries(projectM_shared
|
||||
PRIVATE
|
||||
GLM::GLM
|
||||
PUBLIC
|
||||
${PROJECTM_OPENGL_LIBRARIES}
|
||||
${CMAKE_DL_LIBS}
|
||||
)
|
||||
|
||||
if(ENABLE_THREADING)
|
||||
target_link_libraries(projectM_shared
|
||||
PUBLIC
|
||||
Threads::Threads
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ENABLE_LLVM)
|
||||
target_link_libraries(projectM_shared
|
||||
PUBLIC
|
||||
LLVM::LLVM
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_link_libraries(projectM_shared
|
||||
PUBLIC
|
||||
"-framework CoreFoundation"
|
||||
)
|
||||
endif()
|
||||
|
||||
enable_target_linker_flags_if_supported(projectM_shared PRIVATE --no-undefined)
|
||||
|
||||
install(TARGETS projectM_shared
|
||||
EXPORT libprojectMTargets
|
||||
LIBRARY DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
RUNTIME DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
ARCHIVE DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
set(EXPORT_SHARED_LIB_TARGET projectM_shared)
|
||||
include(libprojectM_shared.cmake)
|
||||
endif()
|
||||
|
||||
if(ENABLE_SHARED_LINKING)
|
||||
@ -270,18 +124,23 @@ else()
|
||||
endif()
|
||||
|
||||
install(FILES
|
||||
Common.hpp
|
||||
PCM.hpp
|
||||
dlldefs.h
|
||||
event.h
|
||||
fatal.h
|
||||
projectM.h
|
||||
projectM.hpp
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/libprojectM/projectM_export.h"
|
||||
DESTINATION "${PROJECTM_INCLUDE_DIR}/libprojectM"
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
if(ENABLE_CXX_INTERFACE)
|
||||
install(FILES
|
||||
Common.hpp
|
||||
PCM.hpp
|
||||
fatal.h
|
||||
projectM.hpp
|
||||
DESTINATION "${PROJECTM_INCLUDE_DIR}/libprojectM"
|
||||
COMPONENT Devel
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
# CMake target exports
|
||||
@ -333,29 +192,6 @@ install(EXPORT libprojectMTargets
|
||||
)
|
||||
|
||||
|
||||
|
||||
# pkgconfig export
|
||||
macro(set_pkg_config_path varname path)
|
||||
if(IS_ABSOLUTE "${path}")
|
||||
set(${varname} "${path}")
|
||||
else()
|
||||
set(${varname} "\${prefix}/${path}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(PKGCONFIG_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
set_pkg_config_path(PKGCONFIG_LIB_DIR "${PROJECTM_LIB_DIR}")
|
||||
set_pkg_config_path(PKGCONFIG_INCLUDE_DIR "${PROJECTM_INCLUDE_DIR}")
|
||||
set_pkg_config_path(PKGCONFIG_DATADIR_PATH "${PROJECTM_DATADIR_PATH}")
|
||||
|
||||
configure_file(libprojectM.pc.cmake.in "${CMAKE_BINARY_DIR}/libprojectM.pc" @ONLY)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/libprojectM.pc"
|
||||
DESTINATION "${PROJECTM_LIB_DIR}/pkgconfig"
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
|
||||
|
||||
# If the path is not absolute, need to add the prefix path (and hope the result is absolute).
|
||||
if(NOT IS_ABSOLUTE PROJECTM_DATADIR_PATH)
|
||||
set(PROJECTM_DATADIR_PATH_ABSOLUTE "${CMAKE_INSTALL_PREFIX}/${PROJECTM_DATADIR_PATH}")
|
||||
|
||||
@ -53,8 +53,6 @@
|
||||
extern FILE *fmemopen(void *buf, size_t len, const char *pMode);
|
||||
#endif /** MACOS */
|
||||
|
||||
#include "dlldefs.h"
|
||||
|
||||
#define DEFAULT_FONT_PATH "/home/carm/fonts/courier1.glf"
|
||||
#define MAX_TOKEN_SIZE 512
|
||||
#define MAX_PATH_SIZE 4096
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
#define INFIX_OR 5
|
||||
#define INFIX_AND 6
|
||||
|
||||
class DLLEXPORT InfixOp;
|
||||
class InfixOp;
|
||||
|
||||
class Eval {
|
||||
public:
|
||||
|
||||
@ -30,7 +30,6 @@
|
||||
#define _EXPR_H
|
||||
|
||||
#include "config.h"
|
||||
#include "dlldefs.h"
|
||||
#include "CValue.hpp"
|
||||
#include "Func.hpp"
|
||||
#include <iostream>
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
#include <string>
|
||||
|
||||
/* Function Type */
|
||||
class DLLEXPORT Func {
|
||||
class Func {
|
||||
public:
|
||||
|
||||
/// Create a new function wrapper object
|
||||
|
||||
@ -15,9 +15,9 @@
|
||||
#include <memory>
|
||||
#include "../PresetFactory.hpp"
|
||||
|
||||
class DLLEXPORT PresetOutputs;
|
||||
class PresetOutputs;
|
||||
|
||||
class DLLEXPORT PresetInputs;
|
||||
class PresetInputs;
|
||||
|
||||
class MilkdropPresetFactory : public PresetFactory
|
||||
{
|
||||
|
||||
@ -30,7 +30,6 @@
|
||||
#define _PCM_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "dlldefs.h"
|
||||
|
||||
|
||||
// FFT_LENGTH is number of magnitude values available from getSpectrum().
|
||||
@ -47,11 +46,7 @@ enum CHANNEL
|
||||
CHANNEL_1 = 1
|
||||
};
|
||||
|
||||
class
|
||||
#ifdef WIN32
|
||||
DLLEXPORT
|
||||
#endif
|
||||
PCM
|
||||
class PCM
|
||||
{
|
||||
public:
|
||||
/* maximum number of sound samples that are actually stored. */
|
||||
|
||||
@ -32,7 +32,6 @@
|
||||
#define _BEAT_DETECT_H
|
||||
|
||||
#include "../PCM.hpp"
|
||||
#include "../dlldefs.h"
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
|
||||
@ -41,7 +40,7 @@
|
||||
// the actual time represented in the history depends on FPS
|
||||
#define BEAT_HISTORY_LENGTH 80
|
||||
|
||||
class DLLEXPORT BeatDetect
|
||||
class BeatDetect
|
||||
{
|
||||
public:
|
||||
// Does this really belong here? maybe belongs on projectM.Settings?
|
||||
|
||||
@ -1,40 +0,0 @@
|
||||
/**
|
||||
* projectM -- Milkdrop-esque visualisation SDK
|
||||
* Copyright (C)2003-2007 projectM Team
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* See 'LICENSE.txt' included within this release
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* $Id$
|
||||
*
|
||||
* DLL definitions for exporting symbols on various platforms
|
||||
*
|
||||
* $Log$
|
||||
*/
|
||||
|
||||
#ifndef _DLLDEFS_H
|
||||
#define _DLLDEFS_H
|
||||
|
||||
#ifndef DLLEXPORT
|
||||
#ifdef WIN32
|
||||
#define DLLEXPORT __declspec(dllexport)
|
||||
#else /** !WIN32 */
|
||||
#define DLLEXPORT
|
||||
#endif /** WIN32 */
|
||||
#endif /** !DLLEXPORT */
|
||||
|
||||
#endif /** !_DLLDEFS_H */
|
||||
@ -27,8 +27,7 @@
|
||||
* $Log: event.h,v $
|
||||
*/
|
||||
|
||||
#ifndef _PROJECTM_EVENT_H
|
||||
#define _PROJECTM_EVENT_H
|
||||
#pragma once
|
||||
|
||||
typedef enum {
|
||||
/** Event types */
|
||||
@ -152,6 +151,3 @@ typedef enum {
|
||||
PROJECTM_KMOD_LCTRL,
|
||||
PROJECTM_KMOD_RCTRL,
|
||||
} projectMModifier;
|
||||
|
||||
#endif /** !_PROJECTM_EVENT_H */
|
||||
|
||||
|
||||
@ -9,5 +9,5 @@ Name: libprojectM
|
||||
Version: @PROJECT_VERSION@
|
||||
Description: projectM - OpenGL Milkdrop
|
||||
Requires:
|
||||
Libs: -L${libdir} -lprojectM
|
||||
Cflags: -I${includedir}
|
||||
Libs: -L${libdir} -l:projectM.a
|
||||
Cflags: -I${includedir} -DPROJECTM_STATIC_DEFINE
|
||||
|
||||
79
src/libprojectM/libprojectM_shared.cmake
Normal file
79
src/libprojectM/libprojectM_shared.cmake
Normal file
@ -0,0 +1,79 @@
|
||||
add_library(projectM_shared SHARED
|
||||
projectM.h
|
||||
ProjectMCWrapper.cpp
|
||||
ProjectMCWrapper.hpp
|
||||
|
||||
$<TARGET_OBJECTS:projectM_main>
|
||||
$<TARGET_OBJECTS:MilkdropPresetFactory>
|
||||
$<TARGET_OBJECTS:NativePresetFactory>
|
||||
$<TARGET_OBJECTS:Renderer>
|
||||
$<TARGET_OBJECTS:hlslparser>
|
||||
$<TARGET_OBJECTS:SOIL2>
|
||||
$<$<PLATFORM_ID:Windows>:$<TARGET_OBJECTS:dlfcn>>
|
||||
)
|
||||
|
||||
target_compile_options(projectM_shared
|
||||
PRIVATE
|
||||
-DprojectM_main_EXPORTS
|
||||
)
|
||||
|
||||
set_target_properties(projectM_shared PROPERTIES
|
||||
OUTPUT_NAME projectM
|
||||
VERSION "${PROJECTM_LIB_VERSION}"
|
||||
SOVERSION "${PROJECTM_SO_VERSION}"
|
||||
EXPORT_NAME shared
|
||||
FOLDER libprojectM
|
||||
)
|
||||
|
||||
target_include_directories(projectM_shared
|
||||
PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include/libprojectM>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer/hlslparser/src>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MilkdropPresetFactory>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/NativePresetFactory>"
|
||||
"$<BUILD_INTERFACE:${MSVC_EXTRA_INCLUDE_DIR}>"
|
||||
"$<INSTALL_INTERFACE:${PROJECTM_INCLUDE_DIR}>"
|
||||
)
|
||||
|
||||
target_link_libraries(projectM_shared
|
||||
PRIVATE
|
||||
GLM::GLM
|
||||
PUBLIC
|
||||
${PROJECTM_OPENGL_LIBRARIES}
|
||||
${CMAKE_DL_LIBS}
|
||||
)
|
||||
|
||||
if(ENABLE_THREADING)
|
||||
target_link_libraries(projectM_shared
|
||||
PUBLIC
|
||||
Threads::Threads
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ENABLE_LLVM)
|
||||
target_link_libraries(projectM_shared
|
||||
PUBLIC
|
||||
LLVM::LLVM
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_link_libraries(projectM_shared
|
||||
PUBLIC
|
||||
"-framework CoreFoundation"
|
||||
)
|
||||
endif()
|
||||
|
||||
enable_target_linker_flags_if_supported(projectM_shared PRIVATE --no-undefined)
|
||||
|
||||
install(TARGETS projectM_shared
|
||||
EXPORT libprojectMTargets
|
||||
LIBRARY DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
RUNTIME DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
ARCHIVE DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
set(EXPORT_SHARED_LIB_TARGET projectM_shared)
|
||||
97
src/libprojectM/libprojectM_static.cmake
Normal file
97
src/libprojectM/libprojectM_static.cmake
Normal file
@ -0,0 +1,97 @@
|
||||
add_library(projectM_static STATIC
|
||||
projectM.h
|
||||
ProjectMCWrapper.cpp
|
||||
ProjectMCWrapper.hpp
|
||||
|
||||
$<TARGET_OBJECTS:projectM_main>
|
||||
$<TARGET_OBJECTS:MilkdropPresetFactory>
|
||||
$<TARGET_OBJECTS:NativePresetFactory>
|
||||
$<TARGET_OBJECTS:Renderer>
|
||||
$<TARGET_OBJECTS:hlslparser>
|
||||
$<TARGET_OBJECTS:SOIL2>
|
||||
$<$<PLATFORM_ID:Windows>:$<TARGET_OBJECTS:dlfcn>>
|
||||
)
|
||||
|
||||
target_compile_options(projectM_static
|
||||
PUBLIC
|
||||
-DPROJECTM_STATIC_DEFINE
|
||||
)
|
||||
|
||||
set_target_properties(projectM_static PROPERTIES
|
||||
OUTPUT_NAME projectM
|
||||
EXPORT_NAME static
|
||||
FOLDER libprojectM
|
||||
)
|
||||
|
||||
target_include_directories(projectM_static
|
||||
PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include/libprojectM>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer/hlslparser/src>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MilkdropPresetFactory>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/NativePresetFactory>"
|
||||
"$<BUILD_INTERFACE:${MSVC_EXTRA_INCLUDE_DIR}>"
|
||||
"$<INSTALL_INTERFACE:${PROJECTM_INCLUDE_DIR}>"
|
||||
)
|
||||
|
||||
target_link_libraries(projectM_static
|
||||
PRIVATE
|
||||
GLM::GLM
|
||||
PUBLIC
|
||||
${PROJECTM_OPENGL_LIBRARIES}
|
||||
)
|
||||
|
||||
if(ENABLE_THREADING)
|
||||
target_link_libraries(projectM_static
|
||||
PUBLIC
|
||||
Threads::Threads
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ENABLE_LLVM)
|
||||
target_link_libraries(projectM_static
|
||||
PUBLIC
|
||||
LLVM::LLVM
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_link_libraries(projectM_static
|
||||
PUBLIC
|
||||
"-framework CoreFoundation"
|
||||
)
|
||||
endif()
|
||||
|
||||
install(TARGETS projectM_static
|
||||
EXPORT libprojectMTargets
|
||||
LIBRARY DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
RUNTIME DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
ARCHIVE DESTINATION "${PROJECTM_LIB_DIR}"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
set(EXPORT_SHARED_LIB_TARGET projectM_static)
|
||||
|
||||
|
||||
# pkg-config export, only supports static library on UNIX systems.
|
||||
if(UNIX)
|
||||
macro(set_pkg_config_path varname path)
|
||||
if(IS_ABSOLUTE "${path}")
|
||||
set(${varname} "${path}")
|
||||
else()
|
||||
set(${varname} "\${prefix}/${path}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(PKGCONFIG_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
set_pkg_config_path(PKGCONFIG_LIB_DIR "${PROJECTM_LIB_DIR}")
|
||||
set_pkg_config_path(PKGCONFIG_INCLUDE_DIR "${PROJECTM_INCLUDE_DIR}")
|
||||
set_pkg_config_path(PKGCONFIG_DATADIR_PATH "${PROJECTM_DATADIR_PATH}")
|
||||
|
||||
configure_file(libprojectM.pc.cmake.in "${CMAKE_BINARY_DIR}/libprojectM.pc" @ONLY)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/libprojectM.pc"
|
||||
DESTINATION "${PROJECTM_LIB_DIR}/pkgconfig"
|
||||
COMPONENT Devel
|
||||
)
|
||||
endif()
|
||||
@ -60,7 +60,6 @@
|
||||
#pragma comment(lib, "kernel32.lib")
|
||||
#endif /** WIN32 */
|
||||
|
||||
#include "dlldefs.h"
|
||||
#include "event.h"
|
||||
#include "fatal.h"
|
||||
#include <vector>
|
||||
@ -116,7 +115,7 @@ class RandomizerFunctor {
|
||||
const PresetChooser & m_chooser;
|
||||
};
|
||||
|
||||
class DLLEXPORT projectM
|
||||
class projectM
|
||||
{
|
||||
public:
|
||||
static const int FLAG_NONE = 0;
|
||||
|
||||
Reference in New Issue
Block a user