summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2017-04-12 19:21:02 +0200
committerAlon Zakai <alonzakai@gmail.com>2017-04-12 10:21:02 -0700
commit0f3102d13617e70b598e7d82f12684d8fa01969b (patch)
treea14c68c36008ac4cdbf64ce8266c0e13abf9fdfb
parent4d452bd81adbd18ef793ab1a02f28c15abc080d3 (diff)
downloadbinaryen-0f3102d13617e70b598e7d82f12684d8fa01969b.tar.gz
binaryen-0f3102d13617e70b598e7d82f12684d8fa01969b.tar.bz2
binaryen-0f3102d13617e70b598e7d82f12684d8fa01969b.zip
Fix install locations per FHS and allow to customize them (#958)
* Fix install locations per FHS and allow to customize them Include built-in cmake module GNUInstallDirs that defines customizable CMAKE_INSTALL_* variables with common defaults per FHS. New FS structure when installed with `CMAKE_INSTALL_PREFIX=/usr`, `BUILD_SHARED_LIBS=ON`: usr ├── bin │   ├── asm2wasm │   ├── s2wasm │   ├── wasm-as │   ├── wasm-dis │   ├── wasm-opt │   └── wasm-shell ├── include │   └── binaryen-c.h ├── lib64 │   └── libbinaryen.so └── share │ └── binaryen │ ├── binaryen.js │ └── wasm.js └── src └── js ├── binaryen.idl ├── binaryen.js-extended.js ├── binaryen.js-post.js └── binaryen.js-pre.js See https://cmake.org/cmake/help/v2.8.7/cmake.html#module:GNUInstallDirs for more information about used variables. Fixes #951
-rw-r--r--CMakeLists.txt22
1 files changed, 11 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b9e135eb6..f7ba5c71d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,6 @@
PROJECT(binaryen C CXX)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
+INCLUDE(GNUInstallDirs)
IF(NOT CMAKE_BUILD_TYPE)
MESSAGE(STATUS "No build type selected, default to Release")
@@ -140,12 +141,11 @@ ELSE()
ADD_LIBRARY(binaryen SHARED ${binaryen_SOURCES})
ENDIF()
TARGET_LINK_LIBRARIES(binaryen ${all_passes} wasm asmjs ast support)
-INSTALL(TARGETS binaryen DESTINATION lib)
+INSTALL(TARGETS binaryen DESTINATION ${CMAKE_INSTALL_LIBDIR})
-INSTALL(FILES src/binaryen-c.h DESTINATION include)
-INSTALL(FILES bin/wasm.js DESTINATION bin)
-INSTALL(FILES bin/binaryen.js DESTINATION bin)
-INSTALL(DIRECTORY src/js DESTINATION src)
+INSTALL(FILES src/binaryen-c.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+INSTALL(FILES bin/wasm.js DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
+INSTALL(FILES bin/binaryen.js DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
SET(wasm-shell_SOURCES
src/tools/wasm-shell.cpp
@@ -156,7 +156,7 @@ ADD_EXECUTABLE(wasm-shell
TARGET_LINK_LIBRARIES(wasm-shell wasm asmjs emscripten-optimizer ${all_passes} ast support)
SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD 11)
SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD_REQUIRED ON)
-INSTALL(TARGETS wasm-shell DESTINATION bin)
+INSTALL(TARGETS wasm-shell DESTINATION ${CMAKE_INSTALL_BINDIR})
SET(wasm-opt_SOURCES
src/tools/wasm-opt.cpp
@@ -166,7 +166,7 @@ ADD_EXECUTABLE(wasm-opt
TARGET_LINK_LIBRARIES(wasm-opt wasm asmjs emscripten-optimizer ${all_passes} ast support)
SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD 11)
SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD_REQUIRED ON)
-INSTALL(TARGETS wasm-opt DESTINATION bin)
+INSTALL(TARGETS wasm-opt DESTINATION ${CMAKE_INSTALL_BINDIR})
SET(asm2wasm_SOURCES
src/tools/asm2wasm.cpp
@@ -177,7 +177,7 @@ ADD_EXECUTABLE(asm2wasm
TARGET_LINK_LIBRARIES(asm2wasm emscripten-optimizer ${all_passes} wasm asmjs ast support)
SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD 11)
SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD_REQUIRED ON)
-INSTALL(TARGETS asm2wasm DESTINATION bin)
+INSTALL(TARGETS asm2wasm DESTINATION ${CMAKE_INSTALL_BINDIR})
SET(s2wasm_SOURCES
src/tools/s2wasm.cpp
@@ -189,7 +189,7 @@ ADD_EXECUTABLE(s2wasm
TARGET_LINK_LIBRARIES(s2wasm passes wasm asmjs ast support)
SET_PROPERTY(TARGET s2wasm PROPERTY CXX_STANDARD 11)
SET_PROPERTY(TARGET s2wasm PROPERTY CXX_STANDARD_REQUIRED ON)
-INSTALL(TARGETS s2wasm DESTINATION bin)
+INSTALL(TARGETS s2wasm DESTINATION ${CMAKE_INSTALL_BINDIR})
SET(wasm_as_SOURCES
src/tools/wasm-as.cpp
@@ -199,7 +199,7 @@ ADD_EXECUTABLE(wasm-as
TARGET_LINK_LIBRARIES(wasm-as wasm asmjs passes ast support)
SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD 11)
SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD_REQUIRED ON)
-INSTALL(TARGETS wasm-as DESTINATION bin)
+INSTALL(TARGETS wasm-as DESTINATION ${CMAKE_INSTALL_BINDIR})
SET(wasm_dis_SOURCES
src/tools/wasm-dis.cpp
@@ -209,4 +209,4 @@ ADD_EXECUTABLE(wasm-dis
TARGET_LINK_LIBRARIES(wasm-dis passes wasm asmjs ast support)
SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD 11)
SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD_REQUIRED ON)
-INSTALL(TARGETS wasm-dis DESTINATION bin)
+INSTALL(TARGETS wasm-dis DESTINATION ${CMAKE_INSTALL_BINDIR})